Как воспроизвести видео в ListView, например, в Instagram и Vine?

Я новичок в разработке Android и пытаюсь воспроизвести несколько видео в виде списка. В настоящее время каждый элемент строки списка представляет собой VideoView. Этот подход не работает, так как VideoViews работают ненормально, когда я начинаю прокручивать. Я исследовал здесь, здесь, здесь и обнаружил, что VideoViews и TextureViews плохо работают в ListViews и ScrollViews. Как такие приложения, как Vine и Instagram, могут воспроизводить видео в списках? Любая помощь приветствуется?


person DollaBill    schedule 20.11.2014    source источник
comment
Проверьте это stackoverflow.com/ вопросы/5896921/   -  person Kiloreux    schedule 20.11.2014
comment
пожалуйста, проверьте следующую ссылку [stackoverflow.com/questions/5896921/ [1]: stackoverflow.com/questions/5896921/   -  person Salah Nour ElDin    schedule 30.07.2015
comment
Если вы еще не нашли ответ, вот хорошая статья: medium.com/@v.danylo/   -  person Andrei    schedule 28.01.2016
comment
Используйте эту библиотеку Android для автоматического воспроизведения видео github.com/eneim/toro.   -  person amit srivastava    schedule 22.02.2018


Ответы (2)


Хотя ответ запоздал, но я думаю, что это может помочь кому-то найти то же самое. На github есть пример приложения, в котором реализовано это требование.: -

https://github.com/danylovolokh/VideoPlayerManager

Для понимания кода обратитесь к следующей ссылке, это действительно полезно для вас: -

https://medium.com/@v.danylo/implementing-video-playback-in-a-scrolled-list-listview-recyclerview-d04bc2148429

Проблема в том, что существуют некоторые ограничения в VideoView в listview и обработке воспроизведений, поэтому эта библиотека реализует VideoView на основе TextureView . Вот как это выглядитвведите здесь описание изображения

person Karan sharma    schedule 22.02.2018

Для воспроизведения видео в Listview вам нужно открыть видео при нажатии элемента ListView, после чего вы можете получить URL-адрес видео в строке, например:

String  myUrl = urHashMaparraylist.get(position).get("videolocation");

Теперь передайте этот myUrl следующему действию и просто установите эту строку как

 Uri video = Uri.parse(myUrl);
 videoView.setVideoURI(video);

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
     {
        String  myUrl = urHashMaparraylist.get(position).get("videolocation");
        Intent n = new Intent(YourActivityName.this , NewActivityName.class);
        n.putExtra("videolocation",myUrl);
        startActivity(n);    
    }

});

Теперь в вашем следующем действии извлеките его как

Uri video = Uri.parse(url);
videoView.setVideoURI(video);

В некоторых случаях для настройки VideoView можно использовать:

 android:background:"#0000"

как из Android Scrollview с видеопросмотром вызывает проблему

Вместо VideoView вы также можете попробовать использовать TextureView для справки, вы можете увидеть ссылку номер 2:

Для получения дополнительной информации о потоковом видео... вы можете проверить следующий URL-адрес: 1>http://developer.samsung.com/android/technical-docs/Android-Media-Streaming-Tutorial

2>http://developer.android.com/reference/android/view/TextureView.html

person SID --- Choke_de_Code    schedule 16.08.2015
comment
Если пользователь хочет воспроизвести видео в том же месте элемента строки, что ему следует использовать? - person Hardik Joshi; 12.09.2015