問題タブ [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.
cocoa-touch - キューから項目を削除すると AVQueuePlayer の再生がフリーズする
AVQueuePlayer を使用してAVPlayerItemsをキューに入れ、再生しました。ただし、 removeItem:メソッドを呼び出してプレーヤーのキューを変更すると、問題が発生します。現在再生中のアイテムに触れない限り、このキューを自由に変更できると想定していましたが、removeItem:を呼び出すたびに再生が一瞬フリーズするようです。
次のコード スニペットを検討してください。
このことから、さまざまなブランチから音楽を再生するダイナミック ミュージック プレーヤーであることが推測できます。したがって、基本的に、アイテムを削除する行にコメントを付けると、すべて問題なく再生されますが、必要に応じてすぐにブランチが変更されないことは明らかです。フリーズは削除が発生したときに発生するため、現在再生中のアイテムは中断されますが、実際のアイテム間の移行はシームレスです。また、キューに 2 つ以上のアイテムがあることはないので、ループでは基本的に 1 つのアイテムのみを削除することに注意してください。
だから、私の質問は次のとおりです。このフリーズを回避する方法はありますか? そして、そもそも何がフリーズを引き起こしているのでしょうか?
編集同じ問題に遭遇した人々にとって、私にとっての解決策は、AVFoundationの使用をやめ、代わりにOrigamiEngineを使用することでした.
ios - IOS の最上位画面でムービーを再生するにはどうすればよいですか?
ビューコントローラーからムービーを再生しようとしています。私はそれを行うために以下のコードを使用しています:
通常は正常に動作します。しかし、時々、映画が始まっても映像が見えず、音だけが聞こえることがあります。
すべての上にビデオを再生する最良の方法は何ですか?
iphone - AVQueuePlayer が次のアイテムを開始するのが早すぎる
を持っていますが、特定のAVQueuePlayer
状況下で、前のトラックが終了する前に次のトラックの再生を開始します。両方を同時に再生するのではなく、最初のトラックを早めに切り取り、次のトラックを開始します。これは、両方のトラックが http ストリームである場合に確実に発生します。ファイルをローカルで再生するときは試していません。また、これはすべてのトラックで発生するわけではありません。特定の 2 つのトラックを一緒にすると、問題が発生します。ほとんどのトラックにはこの問題はありませんが、かなりの数のトラックに問題があります。他のメディア プレーヤーでは、これらのトラックをフィードしてもこれらの症状は見られません。症状を示すトラックはAACエンコードする必要があります。MP3 バージョンをストリーミングする場合、そのような問題はありません。AAC ファイルは、libfaac
、VBR 90%。トラックをエンコードするための正確なコマンド ライン:
この問題は、トラックをギャップレスで積極的に再生しようとすることに関連して編集: 原因ではないと判断されました。以下を参照してください。AVQueuePlayer
いると思います.2つのトラックをギャップなしで順番に再生できるようにするメタデータがAACに含まれていることを知っています(特に電子ミックスで役立ちます)-これらのファイルにはこのメタデータがあってはなりませんとはいえ、関係のない 2 つのトラックAVQueuePlayer
を再生するときにびっくりすることはないのではないでしょうか?
問題を自分で再現したい場合は、最小限のコードで済みます。基本的なプロジェクトを作成し、 をインクルードAVFoundation
して、次のようにします。
最初のトラックをほぼ最後まで再生すると (約 100 秒ほどかかります)、突然終了して 2 番目のトラックが再生されます。
次のトラックが開始されたときにメッセージを傍受して前のトラックの再生状態を確認する、前の開始後にのみ次のアイテムをキューに追加するなどの回避策があると思います...しかし、そのような方法の信頼性が心配です.特にアプリがバックグラウンドの場合。このクライアント側に修正がない場合は、このメタデータ サーバー側を削除する方法があるかどうかを調査するか (それが問題であると仮定します)、はるかに大きく、はるかに音質の悪い MP3 バージョンを使用することをあきらめます。
AVFoundation
はただの暴動です - それを使って恐怖を感じたことのある人なら誰でも同意するでしょう。これを Apple にバグとして報告するかどうかは議論中ですが、iOSの2 つAVQueuePlayer
の主要なアップデートを経ても生き残っているので、これは. この問題に関する私の調査から判断すると、このフレームワークに苦労しているのは明らかに私だけではありません。
- AVQueuePlayer のフラストレーション (バッファ アンダーラン処理)
- ギャップが原因で AVPlayer ストリーミングがバックグラウンドで停止する
- AVQueuePlayer は、AVPlayerItemDidPlayToEndTimeNotification を送信せずに、アイテム キュー内の次の AVPlayerItem に移動することがあります。
- バックグラウンドiOS5で複数のオーディオトラックを再生するAVQueuePlayer
- AVQueuePlayer で現在のアイテムを検出し、いつ変更されるかを知っていますか?
完全な開示: 私のアプリは実際には RubyMotion で書かれていますが、Objective-C で問題を再現するコードはずっと少なくて済みました (したがって、障害の可能性がはるかに少なくなりました)。の使用はAVFoundation
ここでの犯人ではありません。
編集:リンクを使用してローカルファイルでテストしたところfile://
、問題はまだ残っているため、ストリーミングエンジンやWebサーバーの問題ではありません.
編集 2: MP4 の仕様と、iTunes と AVFoundation が MP4 のギャップレス性を判断する方法を調べました。アトムには、 、、およびの 3 つのmoov.udta.meta.ilst.---
アトムがあるはずであり、ギャップレス を再作成するために必要なさまざまなビットをデコーダーに伝えます。ただし、問題の原因となるファイルにはこれらのアトムがないため、ギャップレス再生の結果ではないことは間違いありません。元のファイル (1 つは FLAC、もう 1 つは MP3) を CoreAudio の AAC エンコーダーで実行することにしました。Apple 以外の AAC ビットストリームを扱うときのの出力またはのデコーダ。mean
name
data
AVQueuePlayer
AtomicParsley
libfaac
AVFoundation
ios - malloc でアプリがクラッシュする: *** mmap(size=2147483648) failed (error code=12)
AVQueuePlayer
AVPlayerItems を追加してオブジェクトを作成しています。すべてのプレーヤー アイテムは異なるオーディオ URL を指しており、プレーヤーはバッファされるとすぐに再生する必要があります。
シミュレーターでアプリを起動すると、メモリに関する非常に奇妙な問題が発生します。コンソールは言う
また、スタック トレース ポイントは、フレームワークの内部のどこかにあります。機能でポイントを突き出します#0 MP3AudioStream::GeneratePackets(AudioFileStreamContinuation&) ()
何が問題なのか理解できません。
にブレークポイントを追加しmalloc_error_break
ても、情報は得られません。
誰かが問題を解決するのを手伝ってくれますか?
ありがとう
ios - iOS: AVPlayer を使用して両方のチャンネルでモノラル オーディオ ファイルを再生する方法
AVQueuePlayer
現在、URL からダウンロードしたモノ mp3 ファイルを再生するために を使用しています。スピーカーで再生するとオーディオは問題なく聞こえますが、ヘッドフォンを装着すると、オーディオは片側からしか聞こえません。
AVPlayer
が両方のチャンネルでモノラル オーディオ ファイルを確実に再生する最も簡単な方法は何ですか?
ios - AVQueuePlayer での Airplay にはギャップがあります
私のアプリは、AVQueuePlayer を使用してビデオ クリップを連続して表示します。AppleTV でのテストでは、キュー内の次のビデオに切り替えると、Apple TV が画面を「引き継いで」Apple TV のホーム画面が表示されるわずかな時間差があるようです。このギャップの発生を防ぐ方法はありますか?黒い画面や読み込みインジケーターでも、より良いエクスペリエンスになります.
ios - AVQueueplayerの使用中にステータスバーの再生アイコンが消えることがあります
アプリがオーディオを再生している間、iOS のステータス バーに再生アイコンを表示したいと考えています。AVQueuePlayer を使用してオーディオ アイテムを再生します。すべて正常に動作しますが、私が直面している問題は、再生アイコンがステータス バーに表示されないことがあります。
アプリは再生/一時停止をサポートする必要があります。ユーザーが一時停止をタップすると、キュー プレーヤーが一時停止し、再生ボタンをタップするとキューの再生が再開されます。ユーザーが再生を再度タップすると、その時点で再生されるはずのものと同期するように、プレーヤー アイテムをシークします。しかし、再生をもう一度タップした後、キューは適切な時間を探して再生しますが、ステータスバーに再生アイコンが表示されません。
シークコードをコメントアウトしてみましたが、再生/一時停止しました。再生アイコンは正しく表示/非表示になりますが、seekTime API で何が起こっているのかわかりません。これを使用してシークすると、アイコンに時間が表示されないことがあります。
これは seekTime: API で何か問題が発生していますか? シークに次のコードを使用しています [self.player.currentItem seekToTime:seekTime];
この問題について私を助けてください。
ありがとう