android 视频 p2p

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 视频 p2p相关的知识,希望对你有一定的参考价值。

我现在想弄一个视频分享的应用,就是手机A拥有一个视频,然后别的手机通过P2P的方法跟它进行交互,获取视频并实时播放。问题是我应该怎样去获取视频里面的数据,我知道MediaMetadataRetriever有getFrameAtTime,可以获取视频的帧,但是音频呢?而且这种传图片的方式构成视频应该不是太好,请教大神给思路,高分送上。。。

参考技术A p2p可能不能实现实时播放。因为p2p是分段传输的,有可能你传输了尾部的一段视频,前面的视频段还没穿,造成播放卡顿。
要是实时传输,还是两台电脑之间通过udp协议直接传的好。
或者给p2p加上限制,视频段必须按顺序传播。

说实话我不太看得懂你的意思。
如果你说的是获取别人手机上的视频并边下载边播放的话,那么udp协议传输文件即可。
如果你说的是获取别人正在录制的视频并播放的话,那么有点类似视频通话,两个端口同步传输图像和文件,还是用udp协议。
所以我不知道你为什么要纠结于p2p?追问

首先谢谢你的回答,我的问题就是你说的第一种情况,你说的使用udp协议,每一次传的数据量是多少呢?因为要边传边播放,就是传输过程中产生的临时文件,对于android来说能够正常播放吗?这个我没试过,想问一下,等待你的答复。。

追答

这个靠你实验了,最大不能超过udp数据包最大数据传输量吧?
具体多少合适,可以造成最好的效果,要靠你开发过程中测试得出。

追问

这个我可以测试出来,但是我对那个传输过程中产生的临时文件能不能直接播放产生怀疑,难道传输过程就把那个文件保存为*.mp4,android就能够播放吗?这个是最重要的,这个解决了问题也就是调优的过程罢了,有过经验吗?

追答

从原理上设想,这个东西,说白了就是如何读取不完整的多媒体文件。
肯定不是保存和读取完整多媒体文件播放那一套,
而是识别已下载块中的图像帧,并显示出来,
为了保证流畅,需要缓冲,预先识别一定数量的帧。
具体如何实现,需要你努力了,我只能大概说个思路,我也没搞过这个东西。

或者我再想了想,你可以设计成客户端-服务器模式。
那边传输,这边客户端直接把接受完整的一帧显示。

以上是关于android 视频 p2p的主要内容,如果未能解决你的问题,请参考以下文章

Android 使用VideoView实现简单视频播放

Android音视频三:AudioFlinger和HAL

Android短视频开发

android 如何开发 视频聊天

android中解决关闭的webView时候音视频还在播放问题

Android短视频滑动播放(一)