問題タブ [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.
avplayer - iOS 9: AVPlayer.masterClock との同期の問題
私のアプリでは、AVPlayerItem
サウンドのAVPlayer
再生とビデオの再生に使用しています。両方のプレーヤーを同期するには、次のコードを使用します。
iOS 7 および iOS 8 では、魅力的に機能しました。しかし、iOS 9 では問題が発生し続けます。再生が開始されますが、その後常に数秒前にジャンプするため、再生は流暢ではありません。
すべてのヒントに感謝します。
ありがとうございました。
アップデート
masterClock
が問題の原因ではないようです。を設定せずに試してみましたがmasterClock
、それでも同じ問題がありました。
別のアプリではAVAudioPlayer
、オーディオの再生に を使用AVPlayer
しAVPlayerItem
、ビデオの再生に を使用すると、すべて正常に動作します。
このアプリでは、オーディオAVPlayer
とAVPlayerItem
ビデオの再生の両方に対応しており、これが問題を引き起こしているようです。古いバージョンの iOS では問題なく動作しましたが、iOS 9 では動作しませんでした。
アップデート
iOS 10でテストしたところ、バグはなくなりました。この問題は iOS 9 でのみ発生します。
ios - SwiftでAVPlayerItemを新しいAVPlayerに関連付けますか?
のインスタンスをSwiftAVPlayerItem
の newに再関連付けするにはどうすればよいですか? AVPlayer
イニシャライザで使用する場合。toへのすべての参照を設定した後でも、 anAVPlayerItem
を別のに再割り当てしようとするたびに(したがって、ガベージ コレクションを取得する必要があります)、 anを複数のオブジェクトに割り当てることはできないと不平を言います。私はそれを回避するいくつかの方法を理解していますが、なぜこの方法がうまくいかないのか知りたいです。AVPlayer
AVPlayer
nil
AVPlayerItem
AVPlayer
この宣言中に何が起こるかはわかりませんが、関連付けられたプレーヤーがあることを somePlayerItem が認識できるように、どこかで何かが設定されます。これには、これに注意するオブザーバーがどこかに設定されているか、プロパティが設定されていますか?
元の参照が破棄された後、これAVPlayerItem
を別のものに再割り当てする方法を知っている人はいますか? URL を使用して新しいオブジェクトを作成できることはわかっていますが、同じオブジェクトを保持できるかどうかを知りたいです。AVPlayer
AVPlayer
AVPlayerItem
ios - AVPlayer のボタン クリックで次のビデオを再生
私は2つのビデオを持っています。AVPlayer を使用して動画を再生しています。アプリの起動時に最初の動画が読み込まれ、次の動画をクリックすると、その動画の再生が最初から開始されます。どうすればそれができますか?
次のビデオに切り替えようとして、次のコードを使用しています
ios - AVPlayer がバッファリングを停止する
シームレスな再生のために、ユーザーがビデオを再生できるようになる前に、ビデオ URL を AVPlayer に完全にロードしようとしています。
に 2 つのオブザーバーを追加しAVPlayerItem
ます。
値がビデオの長さと等しくなるまで待ちます-完全にロードされます。
しかし、これはめったに起こりません。プレーヤーは通常、5 秒間のビデオの約 3 でバッファリングを停止します。次に、「playbackBufferFull」が呼び出されます
バッファサイズを増やすにはどうすればよいですか? または、一度呼び出されたビデオの残りをバッファリングする方法playbackBufferFull
は? 再生中の動画の長さはわずか 5 秒です。
ios - SKVideoNode からの再生時に SceneKit で位置オーディオを回転させる
SceneKit を使用して 360º VR エクスペリエンスを作成しています。ユーザーの周りのドームにビデオを表示します。
SpriteKit シーンは、SKVideoNode を使用してビデオ フィードを再生しています。この SpriteKit シーンは、SceneKit で球体の周りにラップされ、ドームを作成します。
再生は素晴らしいです。360° ビデオが表示され、オーディオが聞こえます。ユーザーが回転すると、サウンドが一緒に移動するように、位置オーディオを追加したいと思います。位置を移動するのではなく、ユーザーの頭で回転します (Oculus Rift のように)。
どうやってやるの?
いくつかの研究:
理想的には、SpriteKit に自分の回転を伝えることができます。
次善の方法は、オーディオ トラック (たとえば、5.1 オーディオの MP4 の 6 トラック) にアクセスし、各トラックを 3D シーンのノードにアタッチする方法です。
SpriteKit と SceneKit はどちらも位置オーディオをサポートしています。
SKScene
プロパティを持っていlistener
ます。しかし、2D の世界にいるため、SKNode は回転について認識しません。現在の頭の回転を設定できません。SceneKit には
audioListener
ノードがあり、頭の回転がわかります。しかし、それはSCNAudioPlayer
私が持っていないことを期待しています-SKVideoNodeはビデオとオーディオを再生しています。SKVideoNode のオーディオ トラックについて SCNAudioPlayer に伝えることができれば!SKScene
も提供していますaudioEngine
- トラックはここから入手できますか?SCNVideoNode がないので、SKVideoNode を使用する必要があります。
この状況で位置オーディオを行う方法はありますか?
ios - iOS で到達可能性を使用して、m3u8 (HLS) で適切なインデックス ファイルを選択する
Apple の HTTP Live Streaming Guideによると:
iOS アプリの開発者は、ユーザーのデバイスにクエリを実行して、最初の接続が携帯電話か WiFi かを判断し、適切なマスター インデックス ファイルを選択できます。
Reachability を使用して接続を判断する方法は理解していますが、AVPlayer に m3u8 のインデックス ファイルに別のファイルをロードするように指示する方法がわかりません。
私は少し混乱しています、おそらくこれは自動的に行われますか?しかし、なぜ彼らがあなたにこれをするように勧めるのか理解できません。(最終的には、3G/Edge 接続でもビデオができるだけ速く再生されるようにしたいので、再生に適切なファイルをロードしていることを確認したいと思います)。