問題タブ [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 - avplayeritem は常に不明な状態です
私はちょうど非常に奇妙な問題を見つけました、
ローカルストレージからmp3ファイルをロードするとき、
avplayeritem は常に不明な状態であり、ファイルがドキュメント フォルダーに配置されている場合は再生できません。
方法 1:
方法 2:
出力:
しかし、mp3 ファイルがアプリ バンドルに含まれていた場合でも、way2 コードは正常に機能します。
アプリバンドルとドキュメントのファイルは同じものであると確信しています。他のソフトウェアで再生できます。
way2 を使用することで、バンドル ファイルとドキュメント ファイルの唯一の違いは、
mp3 ファイルがバンドルに配置されている場合、この関数はメタデータを返すことができます
ただし、ドキュメントの URL を使用して nil を返します
ios - iOS: 「304 Not Modified」応答を受け取ったときの AVPlayerItem のバグ
これは非常に奇妙なバグです。
AVPlayer
リモートサーバーからビデオをストリーミングするために使用する各セルのtableViewがあります(Vineのようなタイムラインを考えてください)。そのため、スクロールすると、再利用されるセルが新しいビデオでプレーヤーを再構成します。
問題は、非常に速く前後にスクロールして、同じビデオを画面に出入りさせると、AVPlayer によって送信される要求が最終的に変更され、HTTP ヘッダーIf-None-Match
とが含まれるようになりますIf-Modified-Since
。体系的にサーバーに304 Not Modified
応答を返させます。
これは、AVPlayer の playerItem を満足させるようには見えず、ステータスが に変わりますAVPlayerItemStatusFailed
(興味深いことに、AVPlayer のステータスはまだAVPlayerStatusReadyToPlay
です)。エラーはAVErrorUnknown
(-11800) で OSStatus -12983 です (これはどこにも文書化されておらず、iOS SDK 全体のヘッダーには含まれていません)。
それが奇妙なことです。次に何をしようとも、AVPlayer とその playerItem は取り返しのつかないほど焼き尽くされてしまいます。別のアセットで再構成しても、このステータスを返すだけで黒いフレームが表示されます。さらに奇妙なことに、別の AVPlayer、AVPlayerItem 、およびAVAsset を初期化しても、再生されなくなり、アプリを強制終了して再起動する必要があります。
この時点で、私はかなり無知です。ここで何が起こっているか分かりますか?プレーヤーが接続にこれらのヘッダーを含めないようにすると修正されますが、要求シリアライザーは公開されません。
ios - AVQueuePlayer ギャップレス再生
AVQueuePlayer
hls 再生を模倣するために、再生中に .aac チャンク (通常は 10 秒) を動的に追加しようとしていますAVPlayer
。
ただ、思い通りに曲を次々と再生してくれますが、曲間に200ms~400ms程度のギャップがあります。
次の質問には、この質問に対する答えがあるようですが、私にはうまくいきません。
avplayeritem
最後のアイテムを追跡するためのシングルトン プレーヤーとシングルトンがあります。次に、次のコードを使用して、ギャップのある曲を正常に再生できます。
チャンクをデコードしてから PCM にフィードする必要がありAVQueuePlayer
ますか? それが唯一の解決策である場合、pcm を保持する NSData を にフィードするにはどうすればよいAVPlayerItem
ですか?
ios - リソース ローダー デリゲートを使用して大きなビデオ ファイルで AVPlayer が停止する
このアプローチを使用して、AVPlayer のビデオ ファイルのバッファ データを保存しています。この質問の答えとして見つかりましたAVPlayerのバッファデータを保存しています。
iPhone および iPad - iOS 8.1.3
ビデオを再生するために必要な変更を加えましたが、非常に長いビデオ (長さ 11 ~ 12 分、サイズ約 85 MB) を再生しようとすると、接続の読み込みが完了してから約 4 分後にビデオが停止することを除いて、非常にうまく機能しています。私は、playbackBufferEmpty のイベントと、プレーヤー アイテムの停止通知を取得します。
これがコードの要点です
問題は、接続の読み込みが完了してからしばらくすると、プレーヤー アイテムのバッファが空になることです。現時点での私の考えは、接続がロードを完了して playerItem バッファをめちゃくちゃにするときに、何かが割り当て解除されているということです。
ただし、バッファが空になった時点で、playerItem のステータスは良好で、ビデオ アセットは再生可能であり、ビデオ データは良好です。
チャールズを介してwifiをスロットルし、接続を遅くすると、ビデオの終了から数分以内に接続がロードを完了しない限り、ビデオは再生されます.
ロード完了イベントで接続 nil を設定すると、リソース ローダーは、shouldWaitForLoadingOfRequestedResource が再び起動したときに新しい接続を起動します。この場合、ロードが最初からやり直され、ビデオの再生が続行されます。
この長いビデオは、通常の http URL アセットとして再生すると問題なく再生され、デバイスに保存してそこからロードした後も問題なく再生されます。
video-streaming - iwatchでURLから動画を再生する方法
を使ってiPhoneアプリで簡単な動画プレーヤーを作りましたAVPlayer
。
ビデオ ビュー レイヤーには、 と を使用AVPlayerLayer
しUIImageView
ます。
しかし、iWatch アプリの解決策が見つかりませんWKInterfaceImage
。その機能はありません。
での動画再生の解決策を探していiWatch
ます。
cocoa - AVPlayerItem が AVAudioTimePitchAlgorithmVarispeed 設定を尊重しないのはなぜですか?
AVPlayer に送信するレートに応じて、AVPlayerItem のオーディオ ピッチを変更しようとしています。
これを行うには、次のように「AVAudioTimePitchAlgorithmVarispeed」を指定する AVAsset で AVPlayerItem を初期化しています。
次に、playerItem を AVPlayer にアタッチしますが、AVPlayer のレートを 1 未満または 1 より大きい値に設定すると、ピッチが変化しません。代わりに、AVPlayerItem は「AVAudioTimePitchAlgorithmSpectral」アルゴリズムを使用し、指定したアルゴリズムを尊重しません。私は 10.9 をターゲットにしており、10.9 に対してビルドしています。ドキュメントによると、この機能は 10.9 以降で利用できます。