2014-11-06 6 views
1

Я здесь новый и свежий для разработки Android. Вот мой первый вопрос.Android MediaCodec & MediaExtractor Для воспроизведения видео и аудио

Я использую MediaExtractor и MediaCodec, чтобы играть mp4 файл, с видео и аудио. Теперь я получаю одну пару экстракторов/кодеков для видео и еще одну пару экстракторов/кодеков для аудио, реализованных в двух отдельных потоках.

Мой вопрос: могу ли я использовать только один экстрактор с двумя кодеками для одновременного воспроизведения видео и аудио?

Если да, то как это сделать? Когда я использовал extractor.selecttrack для одного, другой не будет работать ...

Большое спасибо.

Спасибо всем за ответ. Я понял это. Я ошибся, что экстрактор может выбрать только один трек. На самом деле вы можете выбрать несколько дорожек, а extractor.advance() будет читать каждую дорожку в одно и то же время.

+0

Почему вы просто не используете MediaPlayer? http://developer.android.com/reference/android/media/MediaPlayer.html –

+0

@KenWolf. bcz Мне нужно создать собственный плеер с большим количеством функций, которых нет в MediaPlayer. –

+0

В вашем вопросе вы сказали, что «extractor.selecttrack» не работает для другого трека. Не могли бы вы рассказать о том, что не сработало? – Ganesh

ответ

2

Спасибо всем за ответ. Я понял это. Я ошибся, что экстрактор может выбрать только один трек. На самом деле вы можете выбрать несколько дорожек, а extractor.advance() будет читать каждую дорожку в одно и то же время.

1

Да, вы должны использовать только один экстрактор и один экземпляр MediaCodec для каждой дорожки.

Вы не используете MediaExtractor.selectTrack в этом случае, вы должны просто прочитать пакеты со всех треков, и для каждого возвращаемого пакета выберите, к какому медиакодеку передать его.

+0

Как реализовать такого игрока? Я имею в виду воспроизведение видео и аудио синхронно. Спасибо. –

+0

Я отредактировал ответ, чтобы уточнить, что вы не должны использовать selectTrack в этом случае. – mstorsjo

 Смежные вопросы

  • Нет связанных вопросов^_^