如何在ListView中播放视频,如Instagram和Vine?

Dol*_*ill 11 android listview instagram vine android-videoview

我是Android开发的新手,我正在尝试在列表视图中播放多个视频.目前,每个listview行项都是VideoView.当我开始滚动时,这种方法不起作用,因为VideoViews行为异常.我研究过这里,这里,这里 ,发现VideoViews和TextureViews没有在列表视图和ScrollViews很好地工作.Vine和Instagram等应用程序如何在列表视图中播放视频?任何帮助是极大的赞赏?

Kar*_*rma 5

虽然答案很晚,但我认为这可能会帮助寻找相同答案的人。github 上有一个示例应用程序可以实现此要求。:-

https://github.com/danylovolokh/VideoPlayerManager

要理解代码,请参阅以下链接,它对您非常有帮助:-

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

问题在于VideoView列表视图和处理播放方面存在一些限制 ,因此该库实现是基于TextureView的VideoView。这是它的样子在此输入图像描述


SID*_*ode 0

要在 Listview 中播放视频,您需要在 ListView 的 Item Click 上打开 Video,然后您可以在 String 中检索视频 url,如下所示:

String  myUrl = urHashMaparraylist.get(position).get("videolocation");
Run Code Online (Sandbox Code Playgroud)

现在将此 myUrl 传递给下一个 Activity,并将此字符串设置为

 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);    
    }

});
Run Code Online (Sandbox Code Playgroud)

现在在您的下一个活动中将其检索为

Uri video = Uri.parse(url);
videoView.setVideoURI(video);
Run Code Online (Sandbox Code Playgroud)

在某些情况下,为了设置VideoView,您可以使用:

 android:background:"#0000"
Run Code Online (Sandbox Code Playgroud)

Android Scrollview 开始,有 videoview 就会出现问题

除了VideoView,您还可以尝试使用TextureView作为参考,您可以看到第2个参​​考:

有关视频流的更多参考...您可以检查以下网址: 1> http://developer.samsung.com/android/technical-docs/Android-Media-Streaming-Tutorial

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