Как выбрать, какой показывать в случае двойного видео в файле .mp4? - PullRequest
1 голос
/ 28 января 2020

Я использую SurfaceView, где я рендеринг видео. У меня есть файл .mp4 с видео / hev c и видео / av c. Я сделал два потока так, чтобы они извлекались, декодировались и визуализировались на поверхность через SurfaceView. я могу выбрать, какое видео показывать на поверхности, изменив эту строку в потоке:

 decoder.configure(format, null, null, 0);

на

 decoder.configure(format, surface, null, 0);

Но как сделать это динамически на лету одним щелчком мыши кнопка?

1 Ответ

0 голосов
/ 30 января 2020

Если вы нацелены на версию Android, начиная с M, вы можете установить поверхность на лету, используя MediaCode c .SetOutputSurface (Surface) Обратите внимание, что для предотвращения совпадения декодеров на одной поверхности, (только?) решение (плохое?) состоит в том, чтобы использовать другую скрытую поверхность и передать ее первому декодеру перед установкой желаемой поверхности во вторую

...