gpt4 book ai didi

iOS:在某些设备上多次调用 MPMusicPlayerControllerPlaybackStateDidChangeNotification

转载 作者:可可西里 更新时间:2023-11-01 06:16:39 25 4
gpt4 key购买 nike

我有一个播放音乐的应用程序。

我正在使用以下代码来监听来自 MPMusicPlayerController 的播放状态更改以更新 UI。更准确地说,我在播放和暂停之间切换播放按钮的外观。

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];

[notificationCenter addObserver: self
selector: @selector (handle_NowPlayingItemChanged:)
name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification
object: self.musicPlayer];

[notificationCenter addObserver: self
selector: @selector (handle_PlaybackStateChanged:)
name: MPMusicPlayerControllerPlaybackStateDidChangeNotification
object: self.musicPlayer];

[self.musicPlayer beginGeneratingPlaybackNotifications];

这在 iPod Touch (iOS 5)iPhone 3GS (iOS 5) 上效果很好。每次播放状态改变时,我都会收到以下回调:

[JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 1

其中 1 表示 MPMusicPlaybackStatePlaying

但是,如果我在 iPad 1 (iOS 5)iPad 2 (iOS 5)iPad 3 (iOS 6) 上运行相同的程序 我得到以下序列,而不是只有一个回调:

-[JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 1
-[JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 2
-[JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 1
-[JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 2

其中 2 表示 MPMusicPlaybackStatePaused 并导致我的应用程序在 UI 中显示错误的状态,因为歌曲实际上正在播放。

有趣的是,有时序列是

-[JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 1
-[JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 2
-[JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 1
-[JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 2
-[JBMediaPlayer handle_PlaybackStateChanged:] :: playbackState: 1

它以 1 MPMusicPlaybackStatePlaying 正确结束,但是回调被调用 5 次并具有交替值仍然没有意义。

关于如何解决这个问题的任何想法或建议我还可以测试什么来缩小问题范围?


由于到目前为止我还没有在这里收到答案,所以我也将问题交叉发布到 Apple 开发者论坛:https://devforums.apple.com/thread/158426

最佳答案

我认为这与此处报告的错误相同:

Getting wrong playback state in MP Music Player Controller in ios 5

我发布了针对该问题中错误的解决方法。

关于iOS:在某些设备上多次调用 MPMusicPlayerControllerPlaybackStateDidChangeNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11364503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com