0

在我的应用程序中,我有一个接收 flv 流数据的缓冲区。由于安卓不支持flv,那怎么玩呢?如果我将flv流缓冲区转换为mp4,另一个问题来了,那就是:
如何定义MediaPlayer的数据源,因为它通常是文件路径或url。任何人都可以帮助或给我一些建议。

4

1 回答 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 回答