IOS 5以降、すべての音楽プレーヤーは、タイトル、アーティスト、アルバムタイトル、アートワークなどの現在再生中の音楽情報を[MPNowPlayingInfoCenter defaultCenter] .nowPlayingInfoに設定して、ロック画面に表示できます。
IOS 7では、再生位置スライダー、継続時間、経過時間の情報がロック画面とコントロールセンターの両方に追加されます。しかし、これらの情報を設定し、スライダーで再生位置を変更できるドキュメントが見つかりません。
この問題を解決する方法はありますか?
ドキュメントにデフォルトで1.0と記載されている場合でも、再生速度を1.0fに設定する必要があります。
NSDictionary *mediaInfo = @{
MPMediaItemPropertyTitle: audio.title,
MPMediaItemPropertyArtist: audio.artist,
MPMediaItemPropertyPlaybackDuration: audio.duration,
MPNowPlayingInfoPropertyPlaybackRate: @(1.0)
};
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:mediaInfo];
それらはすべて MPNowPlayingInfoCenter
のリファレンスに記載されています。現在再生中のプロパティはオプションの値であり、設定される場合とされない場合があります。それへのリンクは、通常の再生プロパティのリストの最後にある文にあります。
canで設定できる追加のプロパティについては、このドキュメントの 「追加のメタデータプロパティ」で説明しています。 ” 。 (私の強調)
関心のあるプロパティは、MPNowPlayingInfoPropertyElapsedPlaybackTime
およびMPMediaItemPropertyPlaybackDuration
です。
この情報はすべて公開されており、iOS 7 SDKはまだ公開されていないようです(2013年9月14日現在)ので、そのバージョンのiOSより前にも利用可能だったと思います。
警告:Appleのドキュメントではこれが明確にされていません-MPMusicPlayerControllerを使用している場合、音楽は「音楽」アプリによって内部で再生され、nowPlayingInfoCenterを制御することはできません。また、ロック画面に適用されたユーザーアクション(再生/一時停止など)によって生成されたリモートコントロールイベントは、nowPlayingInfoCenterを介して自分のアプリではなく「音楽」アプリに伝達されるため、受信しません。 AVやAvAudioなどの他のメディアプレーヤーを使用する場合は、nowPlayingInfoCenterを制御して、リモートコントロールイベントを受信できます。ただし、AVAudioSessionCategoryOptions.MixWithOthersを使用してAVプレーヤーを設定する場合は、nowPlayingInfoCenterも制御できません。 Appleこれらの詳細をより適切に文書化したいと思います。