Android::VideoView внутри ScrollView
У меня есть VideoView, который находится внутри scrollView. Когда я прокручиваю scrollView, VideoView не прокручивается вместе с ним. Это как его положение зафиксировано. Как правильно прокрутить VideoView с помощью прокрутки всех других элементов в scrollView?
4 ответа
Дисплей обычно делится на два конвейера
- Конвейер буфера кадров - это место, где отображается вся ваша графика. Все элементы отображения пользовательского интерфейса входят в эту линию
- Конвейер видеобуфера - это место, куда перенаправляются ваши видеоданные.
Теперь, когда вы объявляете вид поверхности, вы занимаете некоторое место на экране в пользовательском интерфейсе, говоря, что именно здесь будет отображаться видео. Таким образом, все другие элементы пользовательского интерфейса не смогут занимать это пространство.
Когда происходит прокрутка, ваш поверхностный вид действительно будет перемещаться вверх или вниз в зависимости от события прокрутки, но проблема в том, что конвейер видеобуфера не заботится о том, что происходит в конвейере кадрового буфера, он продолжает заполнять видеоданные в пространство, в котором он был инициализирован с.
Так что на данный момент вы не можете прокрутить видео в Android..
Ромэн Гай сказал в этом выпуске Android:
Это известное ограничение
VideoView
, Вместо этого вы должны использовать TextureView в Android 4.0 и выше.
просто положиandroid:descendantFocusability="blocksDescendants"
ViewGroup, в которой находится VideoView.
Вы можете поместить видео в окне макета с пустым видом на него.
<RelativeLayout
android:id="@+id/lay_live_video"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="visible" >
<VideoView
android:id="@+id/videoview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent" />
</RelativeLayout>
Этот код может быть внутри вашего прокрутки.
Извините за мой английский, я учусь;)