2

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

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

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

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

どうもありがとう。

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

4

2 に答える 2

2

はい、エクストラクタを 1 つだけ使用し、トラックごとに MediaCodec インスタンスを 1 つ使用する必要があります。

この場合、MediaExtractor.selectTrack を使用しないでください。すべてのトラックからパケットを読み取り、返されたパケットごとに、それを渡す MediaCodec を選択する必要があります。

于 2014-11-06T13:52:14.687 に答える