3

AU グラフ (CoreAudio API) を使用してオーディオを再生する実用的なアプリがあります。グラフは常に実行されており、さまざまなソース マテリアルの再生/一時停止状態は、グラフ レンダリング コールバック関数で管理されます。UIEventTypeRemoteControl イベントに正常に応答し、MPNowPlayingInfoCenter を使用して、現在再生中のコンテンツのメタデータでロック画面を正常に更新しました。

1 つ欠けているのは、iOS マルチタスキング バーの再生/一時停止ボタンの状態を更新することです。アプリのオーディオが既に一時停止されている場合でも、常に「一時停止」(||) モードになります。「再生」(>) 状態に切り替わることはありません。

再生/一時停止ボタンの状態を更新するために使用される API はどれですか?

4

2 に答える 2

3

CoreAudio AU グラフを使用すると、AUGraphStart()は iOS ステータス バーと iOS マルチタスク バーに再生インジケーターを表示し、AUGraphStop()はそれらをクリアすることがわかりました。

于 2013-05-06T21:02:38.917 に答える
3

MPNowPlayingInfo ディクショナリを変更し、新しいパラメータを設定します

MPNowPlayingInfoPropertyPlaybackRate to 1.0f to show pause button

MPNowPlayingInfoPropertyPlaybackRate to 0.0f to show play button

再生ボタンから一時停止ボタンまで

Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
if(playingInfoCenter) {       
    NSMutableDictionary *songInfo = [NSMutableDictionary dictionaryWithDictionary:[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo];
    //[songInfo setObject:songTitle forKey:MPMediaItemPropertyTitle];
    //[songInfo setObject:songArtist forKey:MPMediaItemPropertyArtist];
    [songInfo setObject:[NSNumber numberWithFloat:1.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
    [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = songInfo;            
 }

一時停止ボタンから再生ボタンへ

Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
if(playingInfoCenter) {         
    NSMutableDictionary *songInfo = [NSMutableDictionary dictionaryWithDictionary:[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo];
    //[songInfo setObject:songTitle forKey:MPMediaItemPropertyTitle];
    //[songInfo setObject:songArtist forKey:MPMediaItemPropertyArtist];
    [songInfo setObject:[NSNumber numberWithFloat:0.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
    [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = songInfo;
}
于 2015-10-22T06:28:08.327 に答える