美文网首页
IOS 获取音频时长

IOS 获取音频时长

作者: hhuua | 来源:发表于2017-03-31 16:30 被阅读0次

方式一:AVURLAsset

AVURLAsset*audioAsset = [AVURLAsset URLAssetWithURL:audioFileURL options:nil];`

CMTime audioDuration = audioAsset.duration;

float audioDurationSeconds = CMTimeGetSeconds(audioDuration);

方式二:AVAudioPlayer

//在使用过程中发现一个问题,安卓端传过来的音频文件的时长计算出来只有实际时长的三分之一,后发现安卓端的采样频率为8000,估计AVAudioPlayer在计算时是按照25600的频率进行计算的。将ios端的录音采样频率设置为16000后,发现时长只有只有真实时长的1.6分之1 。所以估计是采样频率的原因导致的时长计算不对。

AVAudioPlayer* player = [[AVAudioPlayer alloc] initWithData:data error:nil];

double duration = player.duration;

AVAudioFormat* format = player.format;

NSLog(@"音频时长:%lf",player.duration);

NSLog(@"音频声道数:%u",format.channelCount);

NSSLog(@"采样频率==%lf",format.sampleRate);////默认为:25600,所以也是按照这个频率来计算的

duration = duration*(25600/format.sampleRate);

相关文章

网友评论

      本文标题:IOS 获取音频时长

      本文链接:https://www.haomeiwen.com/subject/deevottx.html