2016-03-29 3 views
1

У меня есть один, полноэкранный SurfaceView. И у меня есть несколько сетевых потоков с видео h264, которое я могу декодировать, используя MediaCodec. Можно ли указать, какие координаты Surface будут отображать видео? Так что я могу создать видео-мозаику?Несколько видеороликов на одной поверхности

+0

Возможный дубликат http://stackoverflow.com/questions/36270328/is-it-possible-to-render-two-video-streams-simultaneous-on-a-single-surfacevie/ – fadden

ответ

1

Нет, это невозможно. Вам нужно будет использовать несколько SurfaceTexture s вместо этого, по одному на видеодекодер, и отобразить все текстуры в одно представление с помощью Open GL.

См. https://source.android.com/devices/graphics/architecture.html для получения дополнительных разъяснений относительно того, как это работает; в частности, каждый Surface может иметь только одного производителя и одного потребителя.

0

В одном SurfaceView - нет. Для получения дополнительной информации вы можете изучить исходный код SurfaceView. Возможно, какой-то эффект мозаики вы можете создать, используя несколько SurfaceView и добавив специальный байт-тример - объединить одно видео в несколько SV и получить полное видео.

Но так или иначе! Это не будет хорошей идеей, если говорить о производительности.

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