You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Windows 10语音录音机文件提取录制时间戳及时长并接入ACCESS数据库?

提取Windows 10语音录音机录制文件的时间戳方案

方案1:读取文件系统属性

语音录音机生成的.m4a文件,其创建时间基本与录制完成时间一致,直接读取文件属性即可获取,适合快速实现:

  • Access VBA 实现代码:
Function GetRecordingTime(filePath As String) As Date
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    GetRecordingTime = fso.GetFile(filePath).DateCreated
    Set fso = Nothing
End Function
  • Python 实现代码:
import os
from datetime import datetime

file_path = r"C:\Users\你的用户名\Documents\Recordings\示例录制文件.m4a"
# 获取文件创建时间(对应录制完成时间)
record_time = datetime.fromtimestamp(os.path.getctime(file_path))
print(record_time.strftime("%Y-%m-%d %H:%M:%S"))

方案2:解析音频文件元数据

.m4a文件中嵌入了录制时间的元数据,可读取该字段获得更精准的录制起始时间:

  • VBA 借助Shell对象读取元数据(注意:不同系统语言的属性索引可能不同,需自行验证):
Function GetMediaRecordTime(filePath As String) As Date
    Dim shell As Object, folderObj As Object, fileObj As Object
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    Set shell = CreateObject("Shell.Application")
    Set folderObj = shell.Namespace(fso.GetParentFolderName(filePath))
    Set fileObj = folderObj.ParseName(fso.GetFileName(filePath))
    
    ' 索引30对应中文系统的"录制日期",其他语言需调整索引
    GetMediaRecordTime = folderObj.GetDetailsOf(fileObj, 30)
    
    Set shell = Nothing: Set folderObj = Nothing: Set fileObj = Nothing: Set fso = Nothing
End Function
  • 若不确定索引,可循环枚举folderObj.GetDetailsOf(folderObj.Items, index)找到对应属性的索引值。

方案3:读取应用内置数据库

语音录音机的所有录制记录(含精确时间戳、时长、文件路径)都存储在系统的SQLite数据库中,路径为:
%LOCALAPPDATA%\Packages\Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe\LocalState\SoundRecorder.db
直接查询该数据库是最精准的方式:

SELECT CreationDate, Duration, FilePath FROM Recordings

编程时可使用SQLite驱动(如VBA的SQLite ODBC驱动、Python的sqlite3库)连接数据库,直接提取所需数据写入Access。

内容的提问来源于stack exchange,提问作者jpl458

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 16:30:58