問題是我有三個NSNotificationcenter的設置來偵聽用戶更改歌曲,音量和播放列表。該應用可以正常播放來自播放列表用戶選擇的歌曲。NSNotification not calling
當用戶選擇要播放的歌曲時,通常會註冊用戶操作來播放歌曲並更改播放狀態,但有時不會這樣做。創建一個只允許玩和不停止的連續循環。 (基本上,代碼存在間歇性故障。)
我相信問題是來自一個操作的NSNotificationcenter調用被另一個NSNotificationcenter調用覆蓋。取消另一個呼叫。從而使用戶無法停止播放歌曲。
應用功能:允許用戶從PickerView中選擇播放列表,從播放列表中加載歌曲並允許用戶從TableView中選擇歌曲進行播放。對於implentation +頭
- (void)addMusicPlayerObserver {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleNowPlayingSongStateChanged:)
name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification
object:self.musicPlayer];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handlePlaybackStateChanged:)
name:MPMusicPlayerControllerPlaybackStateDidChangeNotification
object:self.musicPlayer];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleVolumeChangedFromOutSideApp:)
name:MPMusicPlayerControllerVolumeDidChangeNotification
object:self.musicPlayer];
[self.musicPlayer beginGeneratingPlaybackNotifications];
}
- (void)removeMusicPlayerObserver {
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification
object:self.musicPlayer];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMusicPlayerControllerPlaybackStateDidChangeNotification
object:self.musicPlayer];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMusicPlayerControllerVolumeDidChangeNotification
object:self.musicPlayer];
[self.musicPlayer endGeneratingPlaybackNotifications];
}
的完整代碼
任何幫助將是巨大的。
只是小小的一點,'viewDidunload'不會在iOS6或Higer中調用。在'viewWillAppear' /'viewDidDisappear'中添加和刪除觀察者。 – rckoenes
乾杯。錯過了viewDidUnload不在iOS 6中:/將移動添加/刪除觀察者到viewWillAppear/viewDidDisappear :) – Evilelement
也嘗試刪除'NSNotificationCenter'的'object'參數'self.musicPlayer'並檢查它是否工作然後。 – rckoenes