2012-01-13 13 views
4

iOS 4.3に正しく動作するアプリがありました.iOS 5にアップグレードした後、別の方法で動作します。
これらの行をiOS 4.3で実行すると、mp.playbackStateはMPMusicPlaybackStatePausedに設定されますが、iOS 5ではMPMusicPlaybackStatePlayingに設定されます。MPMusicPlayerControllerはiOS 5で変更されましたか?

MPMusicPlayerController *mp = [MPMusicPlayerController applicationMusicPlayer]; 
if(mp.playbackState == MPMusicPlaybackStatePlaying) 
    [mp pause]; 

私はplaybackStateが同じイベントループ内で更新されないと仮定します。私は問題があると思い

+0

私は[1] [ここ]説明と同様の回避策を作るために、[1] を持っていた:http://stackoverflow.com/questions/10118726 /間違った再生状態のmp音楽プレーヤーのコントローラのios - 5 – matbur

答えて

3

:iOS5を中

MPMusicPlaybackState playbackState = [musicPlayer playbackState]; 

は常に正しいではありません。

私にとってはこの作品:

if (!isPlay) 
{  
    isPlay = TRUE; 
    [appPlayer play]; 
} 
else 
{ 
    isPlay = FALSE; 
    [appPlayer pause]; 
} 
+0

私は別の解決策を見つけることができなかったので、私はこれのような何かをしなければならなかった。 – OtoLeo

+0

私は同じ問題を抱えています、これはバグですか?あなたは時には.playbackStateとしてNULLを参照していますか? –

+0

いいえ、私はNULLを見たことがない。最終的に** MPMusicPlayerControllerPlaybackStateDidChangeNotification **を使用しました。なぜなら、そこには正しいplaybackStateがあるからです。 – OtoLeo

関連する問題