Как получить размер файла MP3 без сжатия с помощью CoreAudio API

Используя CoreAudio, я могу получить sampleRate (кадров в секунду) и размер файла, но для того, чтобы получить «общее» время песни, мне нужно знать реальный размер файла этого сжатого mp3.

        AudioStreamBasicDescription asbd;
        UInt32 asbdSize = sizeof(asbd);

        // get the stream format.
        err = AudioFileStreamGetProperty(inAudioFileStream, kAudioFileStreamProperty_DataFormat, &asbdSize, &asbd);
        if (err)
        {
            [self failWithErrorCode:AS_FILE_STREAM_GET_PROPERTY_FAILED];
            return;
        }

        sampleRate = asbd.mSampleRate;

Есть ли способ узнать реальный размер песни с помощью Objective-C?

Заранее спасибо.


person RoundOutTooSoon    schedule 25.08.2009    source источник


Ответы (1)


См. Ответ на этот вопрос

В AudioFileGetProperty есть свойство kAudioFilePropertyEstimatedDuration, которое должно помочь.

person pgb    schedule 25.08.2009
comment
привет, пгб, я посмотрел на ваш ответ в другом сообщении, на которое вы ссылались, но у меня всегда получалось, что outDataSize каждый раз равен 0. Можете ли вы помочь мне с этим? Благодарность - person RoundOutTooSoon; 26.08.2009