1

我写了这样的简单代码:

VideoView v = (VideoView) findViewById(R.id.videoView);
MediaController mc = new MediaController(this);
mc.setAnchorView(v);
mc.setMediaPlayer(v);
v.setMediaController(mc);
v.setVideoPath("/sdcard/media/video/1.avi");
v.start();

我的问题是这个代码 .avi 文件根本无法播放。Logcat 显示这些字符串:AudioFlinger:写入阻塞 209 毫秒,11 次延迟写入,线程 0x15440 MP3Extractor:无法重新同步。信号流结束。

如果不正确,请告诉我如何播放 avi 文件。

PS 是的,我知道,android 默认不支持 avi,但我也知道很多玩家都可以玩。

4

1 回答 1

8

如果底层硬件具有 AVI 解复用器并且设备能够使用硬件提供的默认播放器播放 .avi 文件,则您的代码应该可以工作。

但是,如果您想构建一个自包含并能够播放 avi 文件的应用程序,您将无法使用上述代码。

基本上你必须建立自己的媒体播放器,它有自己的媒体解复用器和 AV 编解码器。例如,android 上的“moboplayer”使用开源编解码器 ffmpeg。

希望这能回答你的问题..

于 2011-05-19T10:32:32.407 回答