3

スポットライトがオフになっている場合にオーディオファイルの属性を取得するための効率的な代替手段を探しています。

SpotlightのMDItem属性:kMDItemDurationSeconds, kMDItemAudioEncodingApplication, kMDItemAudioBitRate, kMDItemAudioSampleRate,kMDItemAudioChannelCount, kMDItemCodecs、が可能です。

ただし、QTKitのmovieAttributes(ファイルがQTMovieタイプである可能性がある場合)は、それほど完全ではなく、QTMovieDurationAttribute私の仕様を満たすだけです。

オーディオフォーマットサービスを使用する必要があります:OSStatus AudioFormatGetProperty、またはMDItem情報がない場合に十分な、おそらくもっと軽量なものがありますか?

ファイルを変更したり再生したりする必要はありません。プロパティ値を知っているだけで済みます。

ありがとう。

4

2 に答える 2

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]オーディオの他の利用可能な属性を提供します。

于 2012-06-05T23:43:29.487 に答える
0

ターミナルの使用を恐れていない場合は、mdlsがおそらくあなたのためのツールです:

mdls /path/toYour/file
于 2012-06-04T15:08:38.803 に答える