gpt4 book ai didi

ios - 如何在 iOS 中获取现有 MP3 或 AAC 的比特率?

转载 作者:行者123 更新时间:2023-11-29 12:47:40 29 4
gpt4 key购买 nike

我想向用户显示现有的 MP3 文件和 AAC 文件的比特率,但我不知道如何正确提取这些文件的比特率。

到目前为止,我已经尝试获取 ExtAudioFileRefAudioConverterRef 指针,然后我想从转换器中获取比特率,但我的问题已经开始了在第一步。我得到了 kExtAudioFileProperty_AudioConverter 属性的 NULL:

    OSStatus status;
AudioConverterRef result = NULL;

UInt32 size = sizeof(result);
status = ExtAudioFileGetProperty(fileRef, kExtAudioFileProperty_AudioConverter, &size, &result);

assert(status == noErr);

assert(result != NULL); // here it fails

我可以从同一个 fileRef 成功读取 AudioStreamBasicDescription,所以 fileRef 没问题。

如何获取压缩音频文件的码率?

最佳答案

您可以通过ExtAudioFileRefAudioFileID 来实现:

- (void) someMethod {
ExtAudioFileRef extAudioFileRef = ...; // init extAudioFileRef in some way

AudioFileID audioFileId = [self getAudioFileID:extAudioFileRef];;
UInt32 bitRate = [self getBitRate:audioFileId];
}

- (AudioFileID) getAudioFileID:(ExtAudioFileRef)fileRef {
OSStatus status;
AudioFileID result = NULL;

UInt32 size = sizeof(result);
status = ExtAudioFileGetProperty(fileRef, kExtAudioFileProperty_AudioFile, &size, &result);
assert(status == noErr);

return result;
}

- (UInt32) getBitRate:(AudioFileID)audioFileId {
OSStatus status;
UInt32 result = 0;

UInt32 size = sizeof(result);
status = AudioFileGetProperty(audioFileId, kAudioFilePropertyBitRate, &size, &result);
assert(status == noErr);

return result;
}

关于ios - 如何在 iOS 中获取现有 MP3 或 AAC 的比特率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23241957/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com