如何在ListView中像Instagram和Vine一样播放视频?

11

我是Android开发的新手,正在尝试在ListView中播放多个视频。目前,每个ListView行项目都是一个VideoView。但是这种方法不起作用,因为当我开始滚动时,VideoViews会表现异常。我已经参考了这里这里这里,发现VideoViews和TextureViews在ListViews和ScrollViews内部无法正常工作。像Vine和Instagram这样的应用程序如何能够在listviews中播放视频?任何帮助都将不胜感激。


请查看此链接:https://dev59.com/i1bUa4cB1Zd3GeqPCuB8 - Kiloreux
请查看以下链接: [https://dev59.com/i1bUa4cB1Zd3GeqPCuB8#6832598][1] - Salah Nour ElDin
如果您还没有找到答案,这是一篇不错的文章:https://medium.com/@v.danylo/implementing-video-playback-in-a-scrolled-list-listview-recyclerview-d04bc2148429#.ty01zm2it - Andrei
使用这个Android库来自动播放视频:https://github.com/eneim/toro - amit srivastava
2个回答

5

虽然回答晚了,但我认为它可能会帮助到寻找同样问题答案的人。GitHub上有一个示例应用程序,其中包含此要求的实现:

https://github.com/danylovolokh/VideoPlayerManager

了解代码,请参考以下链接,它对您非常有帮助:

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

问题在于在listview中使用VideoView存在一些限制,而且处理播放也有一定的难度,因此这个库实现了基于TextureView的VideoView。以下是它的样子:enter image description here

0

在Listview中播放视频,您需要在ListView的Item Click上打开视频,然后可以将视频URL作为字符串检索,例如:

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

现在将此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);    
    }

});

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

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

在某些情况下, 设置VideoView时,您可以使用以下代码:
 android:background:"#0000"

来自Android Scrollview having videoview is giving problem的问题:

你可以尝试使用TextureView而不是VideoView,参考第2个链接:

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

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


如果用户想在行项目的同一位置播放视频,他应该使用什么? - Hardik Joshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接