AVAudioPlayer 獲取音頻時長不準確的解決辦法

  1. AVAudioPlayer 通過播放音頻發(fā)現(xiàn)AVAudioPlayer的duration屬性會變,當快播放到最后的時候duration屬性才是準確的,如下圖:


    image.png

所以解決辦法就是將AVAudioPlayer的currentTime設置到靠近最后位置,然后duration屬性就是正常了

self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:filePath error:&error];
    if (error) {
        NSLog(@"創(chuàng)建錄音播放對象發(fā)生錯誤,錯誤信息是:%@",error.localizedDescription);
    }else {
        self.audioPlayer.delegate = self;
        self.audioPlayer.meteringEnabled = YES;
        self.audioPlayer.numberOfLoops = 0;
        [self.audioPlayer prepareToPlay];
        
        // 獲取準確的時長
        NSLog(@"1.-----%f",self.audioPlayer.duration);
        _audioPlayer.currentTime = self.audioPlayer.duration;
        NSLog(@"2.-----%f",self.audioPlayer.duration);
        _audioPlayer.currentTime = 0;
        NSLog(@"3.-----%f",self.audioPlayer.duration);
    }
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容