我正在寻找一种有效的替代方案,以便在聚光灯关闭时抓取音频文件属性。
Spotlight的MDItem 属性:kMDItemDurationSeconds, kMDItemAudioEncodingApplication, kMDItemAudioBitRate, kMDItemAudioSampleRate,kMDItemAudioChannelCount, kMDItemCodecs
是可能的。
然而 QTKit的movieAttributes (如果该文件可以是QTMovie类型),并不完整,只有QTMovieDurationAttribute
填满了我的规范。
我应该使用音频格式服务:OSStatus AudioFormatGetProperty
,还是有其他东西,或许更轻量级,在没有MDItem信息的情况下就足够了?
我不需要修改或播放任何文件,我只需要知道属性值。
感谢。
答案 0 :(得分:0)
如果你不害怕使用终端,mdls可能是你的工具:
mdls /path/toYour/file
答案 1 :(得分:0)
从音轨的媒体获取属性,而不是电影。以下是如何以秒为单位获取持续时间的示例。
for (QTTrack* track in [movie tracks])
{
QTMedia* trackMedia = [track media];
if ([trackMedia hasCharacteristic:QTMediaCharacteristicAudio])
{
QTTime mediaDuration = [(NSValue*)[trackMedia attributeForKey:QTMediaDurationAttribute] QTTimeValue];
long long mediaDurationScaleValue = mediaDuration.timeScale;
long long mediaDurationTimeValue = mediaDuration.timeValue;
result = (double)mediaDurationTimeValue / (double)mediaDurationScaleValue;
break;
}
}
[trackMedia mediaAttributes]
会为您提供音频的其他可用属性。