菜鸟教程小白 发表于 2022-12-11 18:20:53

ios - MPMusicPlayerController 不会寻求给定的播放时间


                                            <p><p>我希望 MPMusicPlayerController.applicationMusicPlayer() 实例从特定的开始时间开始播放:</p>

<pre><code>applicationMusicPlayer.setQueueWithStoreIDs()
    applicationMusicPlayer.currentPlaybackTime = 10.0
    print(applicationMusicPlayer.currentPlaybackTime) // will print 10.0
</code></pre>

<p>但是一旦播放器开始播放该项目,它就会将其 currentPlaybackTime 重置为零并从头开始:</p>

<pre><code>applicationMusicPlayer.play()
print(applicationMusicPlayer.currentPlaybackTime) // will print 0.0
</code></pre>

<p>我想可能是因为我将播放设置为刚刚创建但尚未准备好的播放器,但 .prepareToPlay() 或 .isPreparedToPlay() 都没有帮助我解决这种情况。</p>

<p>我什至尝试等待几秒钟,然后才从我设置的位置开始播放。完全没有成功,非常令人沮丧。</p>

<p>也许这与我直接播放 Apple Music 中的歌曲有关?我无法切换到 AVPlayer,因为我必须从 Apple Music 播放音乐。</p>

<p>将不胜感激任何想法和帮助!</p>

<p><strong>更新</strong>:我在 MPMediaPlayback 找到了 beginSeekingBackward 方法,它说如果内容是流式传输的,它不会有任何效果:
<a href="https://developer.apple.com/documentation/mediaplayer/mpmediaplayback/1616248-beginseekingbackward?language=objc" rel="noreferrer noopener nofollow">https://developer.apple.com/documentation/mediaplayer/mpmediaplayback/1616248-beginseekingbackward?language=objc</a>
似乎只有内置音乐应用可以控制流媒体音乐播放?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我刚刚遇到了这个确切的问题。我设法通过以下代码解决了这个问题。 </p>

<p>它创建一个后台线程,不断检查播放器的<code>currentPlaybackTime</code>。只要 <code>currentPlaybackTime</code> 不是我设置的时间,我就将 <code>currentPlaybackTime</code> 设置回我想要的时间。 </p>

<p>感觉就像一个可怕的黑客,但到目前为止它对我有用。</p>

<pre><code>MPMusicPlayerController *player = ;
player.currentPlaybackTime = _startTime;
;

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);
dispatch_async(queue, ^{
    while(true) {
      if (player.currentPlaybackTime != _startTime) {
            player.currentPlaybackTime = _startTime;
            break;
      }
    }
});
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - MPMusicPlayerController 不会寻求给定的播放时间,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/45255183/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/45255183/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - MPMusicPlayerController 不会寻求给定的播放时间