問題タブ [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 が AVPlayerItemStatusFailed で失敗する (OSStatus エラー -12983)
AVPlayer が で失敗することがAVPlayerItemStatusFailed
あり、その失敗が発生した後、AVPlayer は で失敗し続けAVPlayerItemStatusFailed
ます。AVPlayer インスタンスをクリアして新しいインスタンスを作成しようとしましたが、解決できませんAVPlayerItemStatusFailed
。またremovingFromSuperview
UIView
、AVPlayer インスタンスを使用し、AVPlayer で新しいアイテムを初期化しても問題は解決しません。
そのため、AVPlayer を完全にクリアすることはできないことがわかりました。AVPlayer を完全にクリアして、失敗後に機能させるために何か提案する人はいますか?
エラーログ:
アップデート。 @マット用
ios - forwardPlaybackEndTime が機能しない
AVPlayerItem
このプロパティを持っていますforwardPlaybackEndTime
この値は、再生レートが正の場合に再生を終了する時間を示します (AVPlayer の rate プロパティを参照してください)。
デフォルト値は kCMTimeInvalid で、順方向再生の終了時間が指定されていないことを示します。この場合、順方向再生の有効な終了時間はアイテムの継続時間です。
しかし、なぜうまくいかないのかわかりません。、duration available callbackで設定しようとしましたAVPlayerItemStatusReadyToPlay
が、効果はなく、最後まで再生されるだけです
forwardPlaybackEndTime
再生ヘッドを制限するために使用されると思いますよね?自分のアプリで動画の最初から半分だけ再生したい
私のコードは次のようになります
どのようにforwardPlaybackEndTime
仕事をするのですか?
ios - ビデオ ストリームを逆方向にシークまたはスクラブする
[AVPlayer seekToTime:toleranceBefore:toleranceAfter] を使用して、ユーザーがビデオを前後にスクラブできるスクラバーをアプリに作成しました。
スクラブされているビデオは、AVCaptureMovieFileOutput を使用する AVCaptureSession を介してキャプチャされます。結果の .MOV を ffprobed したところ、結果は期待どおりです (たとえば、iPhone 5s では、毎秒約 1 キーフレームで約 23000 kb/s で 120 fps で記録しています)。
キーフレームは 1 秒あたり約 1 つしかないため、正確に遅延なくビデオを逆方向にスクラブすることは困難です (最も近いキーフレームに戻り、現在のスクラブ位置でフレームを計算する必要があるため)。
スムーズなスクラブのためのより良い戦略があるかどうか疑問に思っていますか? これを非常にうまく行うアプリがあります (たとえば、Coach's Eye アプリを調べたところ、私とまったく同じ方法でビデオを録画しますが、そのスクラビング パフォーマンスは非常に優れています)。
どんな提案でも大歓迎です。
ios8 - AVPlayerItemDidPlayToEndTimeNotification が iOS 8 で呼び出されない
上記の通知設定があります。iOS 7 でテストを実行すると素晴らしい方法で呼び出されますが、iOS 8 でアプリケーションを実行すると呼び出されることはありません。
objective-c - アプリの終了理由: 「AVPlayer のインスタンスは、AVPlayer の別のインスタンスによって追加されたタイム オブザーバーを削除できません。」
Apple のドキュメント デモを使用しています。デモのリンクは次のとおりです: AVPlayerDemo
次の手順を実行すると、アプリケーションがクラッシュします
。1) 曲を再生します
。2) シーク バーから早送りします。
3) [次へ] をクリックし、4) シーク バーから早送りします。
ここに私のクラッシュログがあります:
キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: 'AVPlayer のインスタンスは、AVPlayer の別のインスタンスによって追加された時間オブザーバーを削除できません。
そして、音楽プレーヤーのコードは次のとおりです。
ios - AVPlayer がオーディオのみからビデオ ストリームに切り替わらない
AVPlayer を使用して HTTP ライブ ストリームを再生しています。ネットワークが Low のときに AVPlayer が Audio-Only モードに切り替わるのをよく目にしますが、ネットワークが High に回復すると、ビデオ ストリームに切り替わらないか、ビデオ ストリームに切り替わるのに非常に時間がかかります。
iPad で「ネットワーク リンク コンディショナー」を使用して低ネットワーク条件をシミュレートすることで動作を詳細に観察するためのテストを行いましたが、私の観察結果は同じです。つまり、AVPlayer がビデオ ストリームに切り替わらないか、非常に長い時間がかかります。
他の誰かがこの問題に直面していますか? または私は何か間違ったことをしていますか?
前もってありがとう、ヴァス