問題タブ [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 - オーディオを一時停止する通知をキャッチする方法
画面上部からの通知ポップアップ時や着信時に一時停止したい。
AVPlayer/AVPlayerItem を使用しています。
それを実装する方法は?
ios - ローカル URL からの AVPlayerItem の読み込みの問題
AVPlayer を使用してカスタム ビデオ プレーヤーに取り組んでいます。キャッシュ フォルダー (NSCache) のローカル ファイル システムに保存されているビデオを読み込みます。次のようにプレーヤーを初期化します。
これは通常、正常に機能します。ただし、次のエラーで AVPlayerItem のステータスに頻繁に失敗します。
奇妙なことに、失敗した同じ URL が、失敗した直後とその直前に機能することがあります。10回ごとにロード試行が失敗すると思います。何が原因なのか、どこで答えを探すべきなのかわかりません。エラーコードを検索すると、空になりました。ヘルプやポインタは大歓迎です。
ios - AVPlayer ビューから移動した後、ストリーミング HLS ビデオのダウンロードを停止するには?
AVPlayer を使用して HLS ストリームを再生しようとしています。プレーヤーはストリームを正常に再生しますが、プレーヤー ビューから移動した後、HLS ストリームのデータのダウンロードを停止しているようには見えません。AVPlayer ビューから移動した後、数分間、ステータス バーにネットワーク データ スピナーが表示されます。
、を試しcancelPendingSeeks
、を使用してスーパーレイヤーから をcancelLoading
削除しようとしましたが、いずれも問題を解決していないようです — ステータス バーにまだスピナーがあります。AVPlayerLayer
removeFromSuperLayer
このスピナーは実機では見られますが、シミュレーターではスピナーはありません。ビデオがダウンロードされていることは確かです。ネットワーク監視アプリでデータ使用量を確認できます。どうすればこれを修正できますか?
ios - iOS で動画を再生中に字幕を処理する
画面に表示されるローカル (またはリモート) ビデオ ファイルの字幕に対してテキスト処理を行う必要があります。現在使用しAVPlayerItem
ており、そのアセットを調べると、クローズド キャプション トラックがあることがわかりますが、実際の字幕テキストを取得できません。したがって、問題は、字幕トラックが表示されたときに(できれば迅速に)字幕トラックの実際のテキストを取得するにはどうすればよいかということです。
ios - AVPlayer はバッファがいっぱいになると再生を停止し、再開しません
AVPlayer
セル内にあるコレクションビューがあり、ループでAVPlayer
再生を開始するとAVPlayerItem
呼ばれます。これはうまくいきますが、問題はAVPlayer
、アイテムを数回再生した後、ビデオが表示されなくなりますが、音は聞こえることです。@"playbackBufferFull"
また、そのように再生される各アイテムの値のオブザーバーも追加します。
ビデオが停止すると、値のオブザーバーメソッドが呼び出されることに気付きました@"playbackBufferFull"
。まず、バッファがいっぱいになる原因を知りたいと思います.2番目で最も重要なのはAVPlayer
、ビデオが停止したときにどのように再開できるかです; 私は呼び出し[cell.videoPlayer play];
て、アイテムを新しいアイテムに置き換えようとしましたが、うまくいきませんでした.オブザーバーメソッド:
ios - rate プロパティが 0 でも AVPlayer が再生される
This other SO postは、 anのrate
プロパティAVPlayer
が 0 の場合、AVPlayer
が再生されなくなったことを意味します。以下のオブザーバー コードを使用してビデオをループしますpause
が、プレーヤーで関数を呼び出すと、ループを中断できないことがあります。デバッグ時、rate
プロパティは 0 に評価されます。
1) 0 のレート値はプレーヤーが一時停止していることを意味しないという点で、リンクされた SO 投稿は間違っていますか?
2)関数が呼び出された後でも、継続的なループは、通知が既に発行された後に関数が来るpause
ある種の競合状態ですか?pause
playerItemDidReachEnd
ios - 終了時に Swift AVPlayerItem を閉じます
私は Swift と iOS の開発に非常に慣れていないため、私の無知をお許しください。
ビデオの再生が終了したら、AVPlayer を自動的に閉じようとしています。「playerDidFinishPlaying」リスナーをアタッチして通知を受け取ることを考えましたが、一度取得すると、コントローラーを閉じるメソッド/イベントが見つかりません。「完了」ボタンをクリックするアクションを模倣しようとしています。
コードの小さなスニペットを次に示します。うまくいけば、これで十分な情報です。そうでない場合は、さらに情報を提供できます
以下の通知を追加しましたが、これもまた、通知が届いたらどうすればよいかわかりません...
最後に、オブザーバーを削除する必要があることはわかっていますが、いつ、どこで削除すればよいかわかりません。どんな助けでも大歓迎です。
ios - iOS: AVPlayerItem seekToTime が要求された正確な時刻を求めていない
HTTP経由でビデオをストリーミングするアプリに取り組んでいます。AVPlayer は、ビデオの再生に使用されます。AVPlayerItem と selectMediaOption メソッドを使用して、特定のビデオ ストリームを切り替えています (ソースには 3 つのストリームがあります)。
私の問題はseekToTime: toleranceBefore: toleranceAfter:
、新しいビデオをスキップして、切り替え元のビデオと同じ時点にスキップするために呼び出すメディアオプションを切り替えるときです。問題は、これが確実に機能しないことです。AVPlayerItem の currentTime プロパティが要求した時間を報告しているにもかかわらず、ビデオは通常、要求された時間の数秒前にスキップします。私は、toleranceBefore と toleranceAfter の両方に kCMTimeZero を渡しています。
言及する価値のあるもう 1 つのことは、これは 1 つの特定のメディア ストリームでのみ発生するということです。問題が発生しない別のメディア ストリームがあります。
ここで何が問題なのか誰でも提案できますか?