問題タブ [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.

0 投票する
0 に答える
142 参照

ios - AVPlayer と AVPlayerItem - NSError が Fatal かどうかを判断する

通知を介してスローされた NSError が、非致命的エラー (例: サウンドが失われるが、再生が再開する) ではなく、致命的エラー (ビデオ再生を終了/防止する) であるかどうかを判断する方法はありますか?

エラーが致命的かどうかを判断するために、以前は player.rate が 0 (プレーヤーが開始できなかったことを示す) であることに依存していましたが、これは信頼できないことが証明されています。

0 投票する
2 に答える
520 参照

ios - AVPlayerItem を再初期化するには?

「initWithUrl:」メソッドで AVPlayerItem を初期化しています。

問題は、初期化が中断されたときです(接続が失われたなど)

以下があるとしましょう:

1. 何をすべきか? その間接続が失われると、avPlayerItem のインスタンスはどうなりますか? 初期化が成功したかどうかを識別するために実装するプロトコルはありますか?

2. 私が気づいたことは、初期化が中断されると、次の avPlayerItem の「成功した」初期化にトラックがまったくないことです (以前に中断が行われなかった場合に存在します)。アプリを閉じて、もう一度開きます。

0 投票する
1 に答える
900 参照

ios - AVPlayer で Apple Music ファイル (「オフラインで利用可能な」ファイルも含む) を再生するには?

AVPlayer で Apple Music ファイルを再生することはできますか? URL を取得するために次のコードを試しましたが、nil が返されます。

読んでくれてありがとう。

編集: Apple Developer フォーラムでの議論では、AVPlayer を使用しない限り、これは不可能である可能性があることが示唆されています。しかし、それではオーディオ処理が妨げられるため、残念ながらオプションではありません。

0 投票する
1 に答える
616 参照

ios - AV Foundation を使用してビデオをストリーミング再生しようとすると、KVO が問題になります

目標:
最終的に外部ビデオ ファイル (.mp4、.mpg...) を読み込もうとしています。AVPlayerViewController のインスタンス内。

しかし、私はあらゆる種類の KVO 問題を抱えています。

  1. AVPlayerViewController の KVO オブザーバーは、ここのコンソールに示されているように登録していなくても、常に起動しています (ソース: 以下のコード リストのobserveForKeyPath().print(key path) を参照してください)。

playerController.status playerController.contentDimensions playerController.playingOnExternalScreen playerController.externalPlaybackType playerController.allowsExternalPlayback playerController.hasEnabledVideo playerController.hasEnabledAudio 境界 videoScaled playerController.playingOnExternalScreen view.viewWindowState 境界 playerController.playing

  1. KVO オブザーバー (「timedMetadata」) が登録されていません。どうやら:

self.playerItem!.addObserver(self、forKeyPath: "timedMetadata"、オプション: NSKeyValueObservingOptions.New、コンテキスト: nil)

動作していません:
a) 'observeValueForKeyPath()' は、このオブザーバーに対して発火していません。b) 次の
実行時エラーが発生します (オブザーバーをテストとしてすぐに削除した後):

...理由: 「オブザーバーとして登録されていないため、キー パス "timedMetadata" のオブザーバーを削除できません。」

やりたいことは、ビデオの URL を読み込んで再生することだけです。

救済策が不足している場合は、アドバイスを歓迎します。

0 投票する
0 に答える
592 参照

audio - コントロール センター、オーディオ ストリームを一時停止/再生しない

問題が正しいストリームに送られることを願っています。

私は HLS を再生します。つまり、サーバーから混合コンテンツ (オーディオと純粋なビデオ) を再生するために AVPlayer を使用します。

アプリをバックグラウンドに移動した後もオーディオを再生し続けます。plist でそのような機能を有効にしました。さらに、Prev Player を保存し、ビジュアル トラックを無効にし、AVPlayerLayer を nil に設定しました。メソッドは次のとおりです。

そして次の1つ:

したがって、アプリをバックグラウンドに移動し、HOme ボタンを押して、コントロール センターをアクティブにした後 (電卓、カメラ、ライト ボタンがあるボタンから上にスライド)、再生中のアイテムのタイトルを設定できますが、Apple のプレーヤー コントロールは設定できません。動作しない: 一時停止を押しても、再生も動作せず、スライダーも動作しません。ボタンを押すとイベントを受け取りますが、同時に、[プレーヤーの一時停止] を呼び出しているか、レートを変更してもボタンは変更されません。しかし、インターネット経由でのオーディオへのアクセスに問題がある場合、またはサウンド バッファが空の場合、ボタンが変更され、UI が一時停止します。以下は、現在再生中のメディア センターを設定し、コマンドを追加するためのコードです。

それで、私の一時停止コマンドが呼び出され、AVPlayer の一時停止メソッドが呼び出されます。ただし、オーディオ ストリームは停止しません。

また、Slider が機能しないため、seekBackwardCommand/seekForwardCommand は呼び出されません。

しかし、私が言ったように、ストリームが (オーディオも) 終了すると、コントロール センターのプレーヤーはボタンを再生から一時停止に変更します。つまり、どういうわけかオーディオ セッションの変更をリッスンします。

私は設定によってサウンドカテゴリを調整し、AVAudioSessionCategoryPlaybackモードを設定します:AVAudioSessionModeMoviePlayback

コントロール画面の一時停止/再生ボタンを適切に処理する方法、スライダーを有効にする方法を教えてください。

iOS9、iPhone 6でコードを実行しています。

0 投票する
1 に答える
572 参照

swift - AVPlayerItem Swift 2 Nil チェック

コードは Swift 1.2 で正常に動作していましたが、Xcode 7 (Swift 2) を変更すると、以下のifステートメントに記載されているエラーが発生します。

二項演算子 '!=' はタイプ 'AVPlayerItem' および 'NilLiteralConvertible' のオペランドには適用できません

AVPlayerItemでは、実際にどのように確認できNilますか?

0 投票する
0 に答える
1235 参照

ios - 〜60秒後にAvplayer一時停止バッファリングが停止するとき

Avplayerインスタンスでpause()メソッドを呼び出すと、バッファリングは続行されますが、60秒後に停止します。iOS 9 および 8 でテストしました。iOS 9 では、次のように設定されています。

AvplayerItem について。私はmp4を再生し、m3u8ファイルでライブhttpストリーミングも再生しますが、結果は同じです。

0 投票する
4 に答える
3271 参照

ios9 - - copyPixelBufferForItemTime:itemTimeForDisplay: null 値

私が抱えている問題は、アプリが関数CVPixelBufferRefから取得しようとしたときに、iOS9 sdk でアプリをコンパイルすると、ビデオが読み込まれ、すべてのインスタンスが作成されるときに、時々 null 値を取得することです。AVPlayerItemVideoOutput- copyPixelBufferForItemTime:itemTimeForDisplay:

iOS 8 では私のアプリは正常に動作していましたが、iOS9 では問題が発生しています。iOS 8 SDK でコンパイルされた、ダウンロード可能なアプリ ストアにある私のアプリのバージョンでも、インストール時に同じ問題が発生します。 IOS9。

問題が発生して null が発生したgetCVPixelBufferRef場合、ホームボタンを押してアプリを再度開いたときにアプリがバックグラウンドになりAVPlayerItemVideoOutput、null を与えていたインスタンスがアクティブにCVPixelBufferRefなり、問題が解決されます。

これは、問題を再現するYouTubeビデオです。

https://www.youtube.com/watch?v=997zG08_DMM&feature=youtu.be

すべてのアイテムのインスタンスを作成するためのサンプル コードは次のとおりです。

nullピクセルバッファを提供するサンプルコードを次に示します