【问题标题】:Can AVPlayer pre-buffer audio similar to AVAudioPlayer's preparetoplay?AVPlayer 可以预缓冲类似于 AVAudioPlayer 的 preparetoplay 的音频吗?
【发布时间】:2011-07-18 15:32:01
【问题描述】:

有没有办法让 AVPlayer 在调用 preparetoplay 时像 AVAudioPlayer 那样将音频加载到缓冲区中?我试图消除用户按下播放按钮和音频开始播放之间的延迟时间。 AVAudioPlayer 似乎更即时,但我需要播放 iPod 库中的文件。

【问题讨论】:

    标签: iphone ios audio core-audio avaudioplayer


    【解决方案1】:

    如果您使用 AVPlayer 从 URL 播放歌曲,那么当您在 AVPlayer 上调用“播放”时,它会开始加载歌曲,然后在准备好时播放。如果文件是本地文件,我会假设它具有相同的功能。如果它来自您的 iPod,那么延迟时间应该已经非常小了。

    您应该尝试的一件事是调用 play 然后暂停,AVPlayer 将继续加载歌曲,因此当您再次调用 play 时(假设它不是立即的),歌曲应该可以毫无问题地开始播放。从 URL 播放歌曲时,我可以确认这是有效的。试试你的场景。

    - (void) getPlayerReady {
        // write some code here to setup the player
    
        [player play];
        [player pause];
    }
    
    - (IBAction) btnPlayTouched:(id)sender {
        [player play];
    }
    

    编辑:我想我还应该提到 AVQueuePlayer 会为你做这件事。如果你给 AVQueuePlayer 多首歌曲,它会在播放第一首歌曲时自动预缓冲下一首歌曲。我不知道这是否适合您的情况。

    【讨论】:

      猜你喜欢
      • 2015-12-13
      • 2018-02-20
      • 2016-08-08
      • 2012-01-12
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多