我正在寻找一种有效的替代方案,以便在关闭聚光灯的情况下获取音频文件属性。
聚光灯的MDItem属性:kMDItemDurationSeconds, kMDItemAudioEncodingApplication, kMDItemAudioBitRate, kMDItemAudioSampleRate,kMDItemAudioChannelCount, kMDItemCodecs
,是可能的。
但是QTKit的movieProperties(如果文件可以是QTMovie类型)并不完整,只有QTMovieDurationAttribute
满足我的规格。
我应该使用音频格式服务:OSStatus AudioFormatGetProperty
,还是有其他东西,也许更轻量级的东西在没有MDItem信息的情况下就足够了?
不需要修改或播放任何文件,我只需要知道属性值。
谢谢。
从音轨的媒体(而不是影片)获取属性。下面是如何获取持续时间(以秒为单位)的示例。
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]
将为您提供音频的其他可用属性。
如果您不害怕使用终端,mdls 可能是适合您的工具:
mdls /path/toYour/file