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

Posted

技术标签:

【中文标题】如何在 Instagram 和 Vine 等 ListView 中播放视频?【英文标题】:How Do I Play Video in ListView like Instagram and Vine? 【发布时间】:2014-11-20 15:43:59 【问题描述】:

我是 android 开发新手,我正在尝试在列表视图中播放多个视频。目前,每个 listview 行项都是一个 VideoView。这种方法不起作用,因为当我开始滚动时 VideoViews 行为异常。我研究了here、here、here,发现 VideoViews 和 TextureViews 在 ListViews 和 ScrollViews 中不能很好地工作。 vine 和 instagram 等应用如何在列表视图中播放视频?非常感谢任何帮助?

【问题讨论】:

查看***.com/questions/5896921/… 请查看以下链接 [***.com/questions/5896921/… [1]: ***.com/questions/5896921/… 如果你还没有找到答案,这里有一篇好文章:medium.com/@v.danylo/… 使用这个android库自动播放视频github.com/eneim/toro 【参考方案1】:

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

https://github.com/danylovolokh/VideoPlayerManager

对于代码的理解,请参考以下链接,它对你真的很有帮助:-

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

问题是listview中的VideoView有一些限制 并处理播放,所以这个库实现是基于 TextureViewVideoView。这是它的样子

【讨论】:

【参考方案2】:

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

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

现在将这个 myUrl 传递给下一个 Activity 并将这个 String 设置为一个

 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

【讨论】:

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

以上是关于如何在 Instagram 和 Vine 等 ListView 中播放视频?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 上以编程方式将视频上传到 Vine?

如何在 iOS 上以编程方式将视频上传到 Vine?

在recyclerview中使用textureview播放视频

Instagram 等应用程序的数据库实现

Uber开源「神经演化」可视化工具VINE

如何计算 Instagram 媒体用户喜欢的数量?