問題タブ [mediaextractor]

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 に答える
541 参照

android - MP3/AAC ストリームに MediaExtractor を使用せずに MediaCodec を使用する方法

私が理解していることから、バイトのストリームとしてではなく、アクセス単位としてデータをバッファに書き込む必要があります。

現在、extractor を使用してデータを読み取っています。

そして、この sampleSize が使用されます

では、MP3 と AAC の「アクセス ユニット」とは何ですか? それらは固定サイズのチャンクですか?MP3/AAC ストリームから何らかの方法で読み取ることはできますか?

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

android - Android MediaCodec & MediaExtractor ビデオとオーディオの再生用

私はここで初めて、Android 開発を始めたばかりです。これが私の最初の質問です。

ビデオとオーディオでファイルを再生するためにMediaExtractorandを使用しています。これで、ビデオ用のエクストラクタ/コーデックの 1 つのペアと、オーディオ用のエクストラクタ/コーデックの別のペアが、2 つの別々のスレッドで実現されます。MediaCodecmp4

私の質問は、ビデオとオーディオを同期して再生するために、2 つのコーデックを備えた 1 つのエクストラクタのみを使用できますか?

はいの場合、どのように行うのですか?一方に extractor.selecttrack を使用すると、もう一方は機能しません...

どうもありがとう。

ここでみんなの答えに感謝します。私はこれを理解しました。エクストラクターが 1 つのトラックしか選択できないという間違いを犯しました。実際には、複数のトラックを選択でき、extractor.advance() は各トラックを一度に読み取ります。

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

android - Android MediaExtractor MediaCodec シーク

もう一度質問します。

MediaExtractor と MediaCodec を使用して、Android デバイスで MP4 ファイルを再生します。Extractor.seekto() を追加しようとするまで、すべて正常に動作します。

プレーヤーでmp3ファイルを再生するだけなら、シークはうまく機能します。しかし、MP4ファイルで試してみると、動画が更新されません。コードをデバッグしようとしたところ、 が mPlayerExtractor.getSampleTrackIndex()常に 1 を返すことがわかりました (オーディオ トラックを参照)。

しかし、私はそれを修正する方法がわかりません。

すべてのコードをここに置くことはできません。ですので、まずはアドバイスをお願いします。どうもありがとう。

更新: mp4 ファイルと webm ファイルの両方を逆方向にシークできます。webmファイルで順方向にシークすると、シーク操作のジャンプ時間と同じ時間後にビデオの再生が開始されます。mp4ファイルの場合、二度と起動しません。

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

android - Android 4.4.2 で MediaExtractor getTrackCount が 0 を返す理由

私はまったく同じコードを実行しました:

  • アンドロイド 4.1.2
  • アンドロイド 4.2.2
  • アンドロイド 4.4.2。

4.1.2 と 4.2.2 では問題なく動作しますが、4.4.2 では動作しません。

問題はMediaExtractor.getTrackCount、4.4.2 で 0 が返されることです (他のデバイスでは正しい番号が返されます)。

何か案が?

私もまったく同じ問題に直面しています。あなたは解決策を得ましたか?

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

android - MediaExtractor が間違った数のトラックを返しますか?

MediaCodecと を使用して、2 つのオーディオ トラックで mpeg2-ts ストリームを再生するプレーヤーを構築しようとしていますMediaExtractor。URL をエクストラクタに設定すると: extractor.setDataSource(URL)int the Logcat フレームワークが 2 つのオーディオ トラックを検出したことがわかります。2 つのオーディオ トラックと 1 つのビデオ トラック

しかしその後、私は電話します:

trackCount離れた場所は 2 (オーディオ トラック 1 つとビデオ トラック 1 つ) に相当します。私は何を間違っていますか?

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

android - Android で動画再生をスムーズにシークするためのカスタム コード

システムを他のデバイスと同期する必要があるため、ビデオを正確にシークする必要があるプロジェクトに取り組んでいます。動画再生に使用するOSはAndroidです。これまで MediaPlayer クラスを使用していましたが、キー フレームの量によっては、シークが非常に不正確になりました。

そこで私の次のアイデアは、デコードされた画像をキャッシュし、それを独自の再生クラスでラップすることです。これまでのところ、MediaExtractor クラスと MediaCodec クラスを使用してビデオを手動でデコードする方法を理解しています。クラス android.media.ImageReader はまさに私が欲しいもののようです。

しかし、私が理解していないのは、そのような android.media.Image を取得したら手動でレンダリングする方法ですか? YUV から RGB への変換を手動で行うことを防止したいのですが、代わりに、そのような画像を Surface に配置するか、SurfaceTexture にコピーできる方法をお勧めします。

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

android - android.media.Extractor を使用して icy-meta を取得します

android.media.MediaExtractorを使用してストリーミング データから icy-meta を取得することは可能ですか?

アーティストとタイトルを取得したい。