問題タブ [avplayeritem]
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.
ios - UITableViewCell の複数の AVPlayerItem からオブザーバーを追加および削除する
複数のビデオを再生するテーブル ビューを作成しようとしていますがAVPlayer
、AVPlayerItem
それぞれに Observer を追加してAVPlayerItem
、playbackLikelyToKeepUp プロパティを追跡できるようにする必要がありました
私が試して失敗したのは、を設定した後にオブザーバーを追加し、AVPlayerItem
それを削除することですdeinit
がUITableViewCell
、セルの割り当てが解除されることはありませんが、デキューされるため、これは機能せず、このエラーが発生します
検索したらこれにたどり着きました
- オブザーバーを追加または削除するべきではありません
UITableViewCell
が、プレーヤーアイテムがセルサブクラスで作成されているため、そうしなければなりませんでした - オブザーバーを処理する最良の方法は、「UITableViewDelegate」メソッド内にあります
- 追加
willDisplayCell
と削除didEndDisplayingCell
AVPlayerItem
しかし、初期化に時間がかかるため、私の場合はそれでも機能しません
そのため、オブザーバーは追加されませんがwillDisplayCell
、オブザーバーの削除が呼び出され、実行時エラーが発生します
誰かがこれを達成する方法を知っていれば、喜んで教えてくれますか? ありがとう
ios - AVPlayer は、playbackBufferEmpty を起動しませんが、どちらも再生しません
AVPlayer を使用して、インターネット経由でオーディオ ライブ ストリームを再生します。一時停止が 1 分を超えた場合は、再生を回復するのが好きです。
player.rate = 1.0
再開するよう呼びかけます。ただし、ストリームが 1 分以上一時停止された場合、それ以上は再生されません。この場合、再び機能させるには、AVPlayerItem を再作成する必要があります。
では、どうすればこのケースを見つけて、再生が回復しなかったことを知ることができますか?
- KVO on を試してみました
player.rate
。それはそのまま1.0
です。プレイヤーはプレイしていません! - KVO on を試してみました
currentItem.playbackBufferEmpty
。ただし、この場合は呼び出されません。 currentItem.status
に切り替わりません.Failed
。まったく変わりません。
この場合、AVPlayer は何もしないようです。何か案は?
この問題を示すために Playground コードを作成します。
ios - AVPlayer からクローズド キャプション/字幕を抽出する方法
AVPlayer によってレンダリングされたクローズド キャプションは、他の UI コンポーネントと重なることがあるため、別のビューで cc をレンダリングしたいと考えています。
closedCaptionDisplayEnabled を NO に設定することで AVPlayer の cc レンダリングをオフにすることはできますが、レンダリングしたいクローズド キャプションを抽出する方法が見つかりませんでした。
AVPlayer/AVPlayerItem から CC 文字列を抽出する方法があるかどうかは誰にもわかりませんか? AVMediaTypeClosedCaption で AVAssetTrack を識別できますが、特定の時間の文字列を抽出する方法がわかりません。
ios - 「playbackBufferFull」プロパティと「playbackBufferEmpty」プロパティの違いは何ですか?
の 2 つのプロパティを見てきましたAVPlayerItem
。
さて、Appleのドキュメントには次のように書かれています:
再生バッファフル:
このプロパティは、再生に使用されるデータ バッファーの容量に達したことを報告します。
playbackLikelyToKeepUp
再生バッファが容量に達しているにもかかわらず、 の予測をサポートするのに十分な統計データが存在しない可能性がありYES
ます。
再生バッファが空です:
これは、再生がバッファリングされたすべてのメディアを消費し、再生が停止または終了することを示します。
これらのステートメントから、私が理解していることは次のとおりです。
再生バッファフル:
すべてのデータが読み込まれて再生されます。たとえば、URL から 5 分間のビデオを再生しています。最後まですべてのコンテンツが読み込まれると、これらは true になります。
再生バッファが空です:
実際の再生は、今までにロードされたすべてのバッファを消費しました。たとえば、2.3 分までのデータがロードされ、再生もその時間まで到達し、提示するコンテンツがこれ以上ありません。(これがメリーゴーランドを始める時だと思います、指標)
私は何か誤解しましたか?はいの場合、私を修正してください..
深い知識やアドバイスは大歓迎です!
ios - Airplay モードで AVPlayer にサブビューを追加するには?
サブビューをAVPlayer
正常に追加しました。しかし、airplay モードで再生していると、Apple TV に表示されません。誰でもこれについて私を助けることができますか?
AVPlayer
Airplay モードでサブビューを追加するには?
ios - AVPlayerを使用してオーディオを再生するときにUIWebViewでオーディオを一時停止するにはどうすればよいですか
をUIWebView
使用してオーディオを再生するAVPlayer
と、一緒に再生されます。
AVAudioSession
これを制御するために使用しようとします。しかし、機能していません。
これが私のコードです
ios - AVPlayerItem の audioTimePitchAlgorithm パラメータの変更
0.5 よりも低いレートで再生するために audioTimePitchAlgorithm を変更しようとしていますが、あまりうまくいかないようです。私は解決策を求めてSOを精査しましたが、私が試したすべての実装では、まだ0.5以上のレートに制限されているようです...
これが実際に簡単なプロセスである場合は、前もってお詫び申し上げます。おそらく、私はこれに慣れていないため、根底にある概念のいくつかを理解できません。私はすでに AVMutableAudioMixInputParameters オブジェクトを作成して AVMutableAudioMix オブジェクトに割り当て、このミックス オブジェクトを AVPlayerItem に割り当てるインターンを試みましたが、これも同じ結果 (0.5 のレートで再生) をもたらしたので、最初の 1 つだけを含めました。より単純化されたコード試行。どんな助けでも大歓迎です:)