問題タブ [avqueueplayer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
744 参照

ios - MPNowPlayingInfoCenter が一時停止として表示される

AVQueuePlayerアプリ内でメディアを再生するために使用しています。MPNowPlayingInfoCenterアプリがバックグラウンドになっているときに、再生の現在のステータスを表示するために使用しようとしています。私の問題は、メディアが再生されている場合でも、再生ボタンが常に表示されることです。次のコードを使用して、現在再生中の情報を設定しています。

次のスクリーンショットからわかるように、一時停止ボタンが表示されるはずの場所に再生ボタンが表示されています。ここに画像の説明を入力

関連する場合に備えて、AVAudioSessionカテゴリをに設定していますAVAudioSessionCategoryPlayback

0 投票する
1 に答える
823 参照

swift - AVFoundation は連続したビデオ フラグメントを再生します

Web サーバーからストリームの一部であるビデオ フラグメントをフェッチし、アプリ内で連続して再生する iOS アプリに取り組んでいます。いくつかの調査の後、AVQueuePlayer を使用することにしました。サーバーから MP4 ファイルを取得して NSData オブジェクトに格納するたびに、AVPlayerItem を作成してキューに追加します。また、次のアイテムに進む AVPlayerItemDidPlayToEndTimeNotification 通知をリッスンします。私が直面している問題は、ムービー フラグメントから別のフラグメントに進むたびに発生する小さなラグです。iMovie でフラグメントを結合しようとしましたが、フラグメントがいつ終了し、別のフラグメントが開始するかを判断できませんでした。連続するフラグメント間の小さな一時停止/ラグを取り除くにはどうすればよいですか?

これが私のコードです:

繰り返しますが、私の問題は AVQueuePlayer を進めるときです。そこにあり得ないこの遅れを引き起こしています。ムービー フラグメントは小さく (それぞれ 1 ~ 2 秒)、ストリームとして連続しているはずです。2 つの AVQueuePlayers と 2 つの AVPlayerLayers を使用してみましたが、問題は解決しませんでした。

また、MPMoviePlayerController を使用して、再生が終了するたびに contentURL を更新しようとしました。ラグは消えませんでした。

どんな手掛かり?

0 投票する
1 に答える
883 参照

ios - AVQueuePlayer で現在の再生時間と合計再生時間を取得するにはどうすればよいですか?

AVQueuePlayer で再生時間と合計再生時間を取得することは可能ですか? はいの場合、どうすればこれを行うことができますか?

私がこれまでに試したこと

ただし、キューにある currentItem の現在再生されている期間を返しています。

私は何を達成したいですか?

AVQueue Player に存在するすべてのアイテムに関して currentTime Played を取得したいのですが、どうすればそれを行うことができますか?

どんな助けでも大歓迎です。

0 投票する
0 に答える
482 参照

ios - iPhone通話中のAVPlayerまたはAVQueuePlayer

AVPlayer(または) を使用して、アプリAVQueuePLayerによって記録されたローカル ファイルを再生するアプリがあります。すべてうまくいきます。しかし、通話中に iPhone でも動作するようにしたい (ビデオはイベントの記録です)。私が見つけたのは、通話中にビデオ フィードavplayerLayerが空白になり、AVPlayerレートが 0 に変更され (STOP)、レートをゼロ以外に変更しようとする試み (PLAY) がすべて無視される (レートは 0 のまま) ということです。これに関するドキュメントはないようです。プレーヤーでこの状態を検出する唯一の方法は、プレーヤーが STOPPED であり、PLAYBACK を開始しないことです。もちろん、音声の途切れやコールセンターの通話中もチェックしています。

明らかに、この場合、中断は呼び出しによって引き起こされるため、常に非アクティブ/再開またはintactive/background/foreground/resume遷移があります。音声ルート通知だけでなく、音声中断。だから間接的に私はその状態がおそらく起こっていることを知っています.

質問は次のとおりです。(1)この非再生モードにあることを通知する直接的な方法 ( AVPlayer、 に固有) はありますか。私は今、「avplayer.rate がレートを 0 からゼロ以外に変更できませんでした」を使用していますが、これはハックのようです (そして、「ストリームを横断しすぎ」ています!) ビデオを一時的に再生またはプレビューできないことをユーザーに通知したいので、アプリが壊れているとは思わない。また、iPhone 通話が終了したときに通知するか、自動的に再生を続行します。(500 ミリ秒ごとに再生を開始しようとするループ プロセスなしで!)AVPlayerLayerAVPlayer

(2) AVPlayeriPhone通話中(グリーンバー)は何でも再生できますか? それともこれはアップルがAVPlayerSDKを設計した方法ですか?(そうであれば、これに関するドキュメントはありません)明らかに、他のアプリはiPhone通話中にビデオを再生できますが、AVPlayer.

0 投票する
1 に答える
207 参照

objective-c - AVQueuePlayer がバックグラウンドでストリーミングを停止します (シグナル 9 により終了)

サウンドクラウドから音楽をストリーミングするアプリを開発しています。このために、いくつかの AVPlayerItems で初期化された AVQueuePlayer を使用しています。アプリがバックグラウンドに入るまで、すべて正常に動作します。1 ~ 2 分かかると、再生が停止し、XCode デバッグ エラー コード「Terminate due to signal 9」が表示されます。メモリを調べたところ、アプリは常に最大 25 MB のメモリを必要としていました。AVQueuePlayer にはいくつかのオブザーバーも追加されています。デバイスがロックされているときなどにアプリが音楽を再生できるはずなので、私は本当にそれを助けることができません.

前もって感謝します

0 投票する
0 に答える
1064 参照

ios - AVQueuePlayer ギャップレス再生

AVQueuePlayerhls 再生を模倣するために、再生中に .aac チャンク (通常は 10 秒) を動的に追加しようとしていますAVPlayer

ただ、思い通りに曲を次々と再生してくれますが、曲間に200ms~400ms程度のギャップがあります。

次の質問には、この質問に対する答えがあるようですが、私にはうまくいきません。

ギャップやフリーズなしの AVQueuePlayer 再生

avplayeritem最後のアイテムを追跡するためのシングルトン プレーヤーとシングルトンがあります。次に、次のコードを使用して、ギャップのある曲を正常に再生できます。

チャンクをデコードしてから PCM にフィードする必要がありAVQueuePlayerますか? それが唯一の解決策である場合、pcm を保持する NSData を にフィードするにはどうすればよいAVPlayerItemですか?

0 投票する
1 に答える
125 参照

ios - iOS - AVQueuePlayer が曲を再生せず、モバイル データを使用するとアプリケーションがクラッシュすることがある

私のアプリケーションでは、NSURL を介して AVQueuePlayer を使用して複数の曲を再生しています。Wi-Fi を使用して曲を再生すると、すべて正常に動作します。モバイルデータを使用すると、曲が再生されず、アプリがクラッシュすることがあります。私を助けてください。

0 投票する
2 に答える
2075 参照

ios - AVQueuePlayer の n 番目の項目を再生

のインスタンスがあり、 (10 個のアイテムがあるとしましょう)AVQueuePlayerを使用してビデオのコレクションで初期化しました。ボタン イベントでは、コレクションから n 番目のインデックスのアイテムを再生する必要があります。AVPlayerItem

使用しまし- (void)replaceCurrentItemWithPlayerItem:(AVPlayerItem *)itemたが、現在再生中のアイテムが渡されたものに置き換えられAVPlayerItemます。

AVPlayerItemの n 番目にプレイする必要がありAVQueuePlayerます。どんな助けでも大歓迎です。