Ily*_*ski 8 iphone cocoa-touch
获取音频文件的持续时间最简单的方法是什么?
我可以创建一个AVAudioPlayer的对象,用URL初始化它,然后获取持续时间,但这种方式太长了.有没有更简单的方法?
谢谢.
Far*_*our 14
正确的代码是
NSURL *afUrl = [NSURL fileURLWithPath:soundPath];
AudioFileID fileID;
OSStatus result = AudioFileOpenURL((CFURLRef)afUrl, kAudioFileReadPermission, 0, &fileID);
Float64 outDataSize = 0;
UInt32 thePropSize = sizeof(Float64);
result = AudioFileGetProperty(fileID, kAudioFilePropertyEstimatedDuration, &thePropSize, &outDataSize);
AudioFileClose(fileID);
Run Code Online (Sandbox Code Playgroud)
outDataSize应该是Float64而不是UInt64.
您可以使用音频文件服务功能.有一个属性可以给你估计的持续时间.码:
NSURL *afUrl = [NSURL fileURLWithPath:soundPath];
AudioFileID fileID;
OSStatus result = AudioFileOpenURL((CFURLRef)afUrl, kAudioFileReadPermission, 0, &fileID);
Float64 outDataSize = 0;
UInt32 thePropSize = sizeof(Float64);
result = AudioFileGetProperty(fileID, kAudioFilePropertyEstimatedDuration, &thePropSize, &outDataSize);
AudioFileClose(fileID);
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看文档