在我的应用程序中,我有一个接收 flv 流数据的缓冲区。由于安卓不支持flv,那怎么玩呢?如果我将flv流缓冲区转换为mp4,另一个问题来了,那就是:
如何定义MediaPlayer的数据源,因为它通常是文件路径或url。任何人都可以帮助或给我一些建议。
问问题
1037 次
1 回答
0
我个人使用VideoView.setVideo(uri)
在VideoView
. 您可以使用以下ffmpeg命令行简单地在服务器端或您自己的电脑上转换视频:
ffmpeg -i infile.flv outfile.mp4
就像您应该知道函数VideoView.setVideo()
期望的第一个参数 a 一样Uri
,它可以是本地路径或 http/https url。
如果您需要通过网络服务器发送 cookie 以进行下载/流式传输,您可以使用setVideo(Uri, Map<String, String>)
带反射的隐藏功能:
HashMap<String, String> header = new HashMap<String, String>();
header.put("Cookie", "--value--");
Method setVideo = videoView.getClass().getMethod("setVideoURI", Uri.class, Map.class);
setVideo.invoke(videoView, Uri.parse(url), header);
但请注意,您需要捕获可能引发的异常,为简化起见,我在上面的代码中删除了它们。
于 2012-12-19T08:37:50.443 回答