<Python核心编程(第二版)>第五章练习题二
2012-07-20 19:32
489 查看
一、 在项目中要播放网络视频文件,视频文件格式是Mp4,因为以前进行过相关开发,所以没有想太多,拿到网络地址就在模拟器上进行运行
代码如下
vv.setVideoURI(Uri.parse("http://192.168.0.228:8080/WorkLogServer/WebRoot/test.mp4"));
vv.setMediaController(new MediaController(this));
vv.start();
本以为没有问题,结果发现怎么也不能播放,异常报告如下
D/MediaPlayer(585): Couldn't open file on client side, trying server side
D/MediaPlayer(585): getMetadata
E/MediaPlayer(585): error (1, -2147483648)
E/MediaPlayer(585): Attempt to call getDuration without a valid mediaplayer
E/MediaPlayer(585): error (-38, 0)
E/MediaPlayer(585): Attempt to call getDuration without a valid mediaplayer
E/MediaPlayer(585): error (-38, 0)
E/MediaPlayer(585): Error (1,-2147483648)
D/VideoView(585): Error: 1,-2147483648
E/MediaPlayer(585): Error (-38,0)
D/VideoView(585): Error: -38,0
E/MediaPlayer(585): Error (-38,0)
D/VideoView(585): Error: -38,0
于是在网上查资料要进行转码,转码工具MP4box进行hint,当我把网络上的MP4视频文件进行转码后发现还是不能播放。因此以为我的转码工具不够,或者是我转码方式不对,
Mp4box下载http://down.51cto.com/data/775652
于是我安装了ffmpeg转码系统。悲剧再次来临。把转码好的MP4视频文件放在网络服务器上访问还是不能播放。
ffmpeg下载:http://down.51cto.com/data/775659
再次以为是播放代码不支持,因此使用了暴风、SeeJoPlayer等播放器在模拟器你进行播放,发现还是不行。不管是本地还是网络都不能播放。
很无奈之下选择使用真机试一下,发现本地和网络都可以播放。于是问题就被搁浅了。模拟器为什么不能播放MP4的视频文件。求大神们给解答一下。。。
二、在低版本android2.2中播放视频时出现了E/MediaPlayer(21034): error (1, -18)
使用格式工厂进行移动设备转码解决,注意只能转码成支持当前真机分辨率下的格式以及大小
最终低版本的视频播放解决方案成为完整。无论是高版本和低版本都可以进行视频播放了。
注:视频文件转码又成为了解决方案的又一个问题。
一年多了,我现在才有时间写这个篇博客的解决办法
其实已经有很多公司提供了视频解码库支持。比如vitamio 还有百度服务等都提供这个方面的技术支持。如果你懂这个可以使用开源的ffmeg设计自己的底层适配解码库。当然你得懂c、c++等相关方面的技术。
代码如下
vv.setVideoURI(Uri.parse("http://192.168.0.228:8080/WorkLogServer/WebRoot/test.mp4"));
vv.setMediaController(new MediaController(this));
vv.start();
本以为没有问题,结果发现怎么也不能播放,异常报告如下
D/MediaPlayer(585): Couldn't open file on client side, trying server side
D/MediaPlayer(585): getMetadata
E/MediaPlayer(585): error (1, -2147483648)
E/MediaPlayer(585): Attempt to call getDuration without a valid mediaplayer
E/MediaPlayer(585): error (-38, 0)
E/MediaPlayer(585): Attempt to call getDuration without a valid mediaplayer
E/MediaPlayer(585): error (-38, 0)
E/MediaPlayer(585): Error (1,-2147483648)
D/VideoView(585): Error: 1,-2147483648
E/MediaPlayer(585): Error (-38,0)
D/VideoView(585): Error: -38,0
E/MediaPlayer(585): Error (-38,0)
D/VideoView(585): Error: -38,0
于是在网上查资料要进行转码,转码工具MP4box进行hint,当我把网络上的MP4视频文件进行转码后发现还是不能播放。因此以为我的转码工具不够,或者是我转码方式不对,
Mp4box下载http://down.51cto.com/data/775652
于是我安装了ffmpeg转码系统。悲剧再次来临。把转码好的MP4视频文件放在网络服务器上访问还是不能播放。
ffmpeg下载:http://down.51cto.com/data/775659
再次以为是播放代码不支持,因此使用了暴风、SeeJoPlayer等播放器在模拟器你进行播放,发现还是不行。不管是本地还是网络都不能播放。
很无奈之下选择使用真机试一下,发现本地和网络都可以播放。于是问题就被搁浅了。模拟器为什么不能播放MP4的视频文件。求大神们给解答一下。。。
二、在低版本android2.2中播放视频时出现了E/MediaPlayer(21034): error (1, -18)
使用格式工厂进行移动设备转码解决,注意只能转码成支持当前真机分辨率下的格式以及大小
最终低版本的视频播放解决方案成为完整。无论是高版本和低版本都可以进行视频播放了。
注:视频文件转码又成为了解决方案的又一个问题。
一年多了,我现在才有时间写这个篇博客的解决办法
其实已经有很多公司提供了视频解码库支持。比如vitamio 还有百度服务等都提供这个方面的技术支持。如果你懂这个可以使用开源的ffmeg设计自己的底层适配解码库。当然你得懂c、c++等相关方面的技术。
相关文章推荐
- <Python核心编程(第二版)>第五章练习题
- <Python核心编程(第二版)>第六章练习题
- <Python核心编程(第二版)>第八章练习题
- <Python核心编程(第二版)>第六章练习题
- <Python核心编程(第二版)>第七章练习题
- Python核心编程(第二版)第五章练习题
- <Python核心编程(第二版)>第八章练习题
- 《Python核心编程》第二版第97页第五章练习 续四
- python核心编程 第五章练习题答案(简单的没上)
- 《Python核心编程》第二版第六章练习题答案
- 《Python核心编程》第二版第六章练习题答案-第五部分
- 《Python核心编程》第二版第97页第五章练习 续五
- <HTML5秘籍>——第五章(音频与视频)
- 《Python核心编程(第二版)》练习题(自己写的)
- Python核心编程(第二版)--第五章
- 《Python核心编程》第二版第六章练习题答案-第二部分
- python核心编程 第二版 第五章 习题
- python核心编程(第二版)参考答案(自制)--第五章·数字
- <<Javascript Dom 编程艺术(第二版)>>摘录
- 《Python核心编程》第二版第八章练习题答案 第二部分