iphone - 如何查找音频文件长度(以秒为单位)

标签 iphone objective-c audio core-audio

( Objective-C ) 仅使用简单的 AudioServicesPlaySystemSoundID 及其对应项,但我无法在文档中找到是否已经有查找音频文件长度的方法。

我知道有 AudioServicesGetPropertyInfo,但它似乎返回一个字节缓冲区 - 音频文件是否将它们的长度嵌入到自身中,我可以用它提取它?

或者是否有基于比特率 * 文件大小的公式来转换为时间长度?

mIL3S

www.milkdrinkingcow.com

最佳答案

根据 Google 的快速搜索,有一个公式:

length-of-time (duration in seconds) = fileSize (in bytes) / bit-rate (bits/secs)*8

您使用系统声音服务播放声音有什么特别的原因吗?

如果你使用 AVAudioPlayer 来处理你的声音,你可以这样做:

AVAudioPlayer * sound = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];
sound.delegate = self;
sound.volume = 1;
NSLog([NSString stringWithFormat:@"%f", sound.duration]);

关于iphone - 如何查找音频文件长度(以秒为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4630176/

相关文章:

iPhone:绘制一条曲线直到它变成一个圆形动画

iphone - 使用 SDWebImage IOS 管理服务器上的图像更改

iphone - 关于创建 iPhone Piano UI 的问题

ios - 当我快速导入 OBJ-C 类时,Xcode 不会提示我添加 Bridging-header.h

jquery - 附加代码以在播放歌曲时切换图像

javascript - 使用 Javascript 在 iPhone 网络应用程序中播放声音?

iphone - Adobe Air/Actionscript/Flex 适用于 IOS iPhone 4 摄像头旋转 90 度

ios - 模拟器和 iPhone 6 plus 上的 iphone 套接字流缓冲区不同?

iphone - 回调的代表数组不安全?

objective-c - 为什么atomic对于复杂对象的线程安全性不够