美文网首页
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