2

サーバーから曲をストリーミングしたかったのですが、これは私が行った方法ではうまく機能しているようですが、このアプローチでは不可能と思われることがいくつかあります。

私は現在AVPlayerをインスタンス化しました

player = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:@"http://media.soundcloud.com/stream/songID?stream_token=myToken"]];

そして、私のアプリケーションがバッファが十分であると判断したときに、playと呼ばれます。

これでサウンドは完全に正常に再生されますが、AVPlayerインスタンスを指すのをやめるとプレーヤーが停止し、アプリケーションをバックグラウンドにプッシュすると、アプリケーションがフォアグラウンドに戻るまでサウンドがフェードして一時停止することがわかりました。

AVPlayerでバックグラウンドで曲を再生し続けることは可能ですか?

そうでない場合は、代わりにHTTPライブストリーミングを検討する必要がありますか?

私はiOSのこちら側に非常に慣れていないので、仲間のSO-erが私に教えてくれるガイダンスをいただければ幸いです。

4

2 に答える 2

8

アプリがバックグラウンドでオーディオを再生できるように明示的に有効にする必要があります。次のキーをInfo.plistファイルに挿入します。

<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
</array>

参照

また、オーディオの再生を開始する前に、次の行を追加してください。

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:NULL];

参照

于 2012-11-21T20:15:43.537 に答える
0

技術的なQ&AQA1668iOSでAVFoundationを使用してバックグラウンドでメディアを再生する

Q:アプリケーションがバックグラウンドにあるときにAV Foundationを使用しているときに、メディアが引き続き再生されるようにするにはどうすればよいですか?

A:アプリがバックグラウンドで可聴コンテンツを再生することを宣言し、オーディオセッションに適切なカテゴリを割り当てる必要があります。ビデオメディアに関する特別な考慮事項も参照してください。

バックグラウンドでアプリがAudibleコンテンツを再生することを宣言する

まず、アプリケーションが特定のバックグラウンドサービスを提供し、バックグラウンドで実行を継続できるようにする必要があることを宣言します。これを行うには、アプリのInfo.plistファイルにUIBackgroundModesキーを追加します。その値は、アプリケーションがサポートするバックグラウンドタスクを識別する1つ以上の文字列を含む配列です。文字列値audioを指定して、アプリケーションがバックグラウンドでユーザーに可聴コンテンツを再生することを示します。

図1アプリがバックグラウンドで可聴コンテンツを再生することを宣言します。

重要:UIBackgroundModesオーディオキーを使用すると、アプリはAirPlayを使用してバックグラウンドでメディアコンテンツをストリーミングすることもできます(ビデオメディアに関する特別な考慮事項も参照してください)。

于 2016-08-04T13:55:28.473 に答える