检查音频文件替代聚光灯

时间:2012-05-28 15:29:33

标签: cocoa audio qtkit spotlight

我正在寻找一种有效的替代方案,以便在聚光灯关闭时抓取音频文件属性

Spotlight的MDItem 属性:kMDItemDurationSeconds, kMDItemAudioEncodingApplication, kMDItemAudioBitRate, kMDItemAudioSampleRate,kMDItemAudioChannelCount, kMDItemCodecs是可能的。

然而 QTKit的movieAttributes (如果该文件可以是QTMovie类型),并不完整,只有QTMovieDurationAttribute填满了我的规范。

我应该使用音频格式服务OSStatus AudioFormatGetProperty,还是有其他东西,或许更轻量级,在没有MDItem信息的情况下就足够了?

我不需要修改或播放任何文件,我只需要知道属性值。

感谢。

2 个答案:

答案 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]会为您提供音频的其他可用属性。