2012-02-16 127 views
0

我有这样的代码:Android和视频流

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     String url = "http://people.sc.fsu.edu/~jburkardt/data/mp4/cavity_flow_movie.mp4"; 
     videoPlayer(url); 
    } 

    public void videoPlayer(String url){ 
     getWindow().setFormat(PixelFormat.TRANSLUCENT); 
     VideoView videoHolder = (VideoView) findViewById(R.id.videoView1); 
     videoHolder.setMediaController(new MediaController(this)); 
     videoHolder.setVideoPath(url); 
     videoHolder.requestFocus(); 
     videoHolder.start(); 
    } 

如果工作正常,但如果URL是http://www.tuoregalo.com/video2.avi那不行....为什么?错误消息是“不可视的视频”

回答

1

我也遇到了这个问题,当url上的文件是mp4类型 ,但是当你尝试一个AVI文件它didesent工作,因为所有关闭的Android手机,包括模拟器剂量支持AVI格式本地AVI格式与iPhone正常工作,但不是与Android你的代码是绝对罚款。

您可以通过将它发挥Android的AVI到Android 请检查该http://www.snowfoxsoft.com/tutorial/how-to-convert-avi-to-android-phone.html

看到一些局限性

自90年代初推出,新的计算机视频技术已被引入了原来的AVI规格没有预测:

AVI没有提供一个标准化的方式来编码宽高比信息,结果是玩家不能自动选择正确的(尽管手动可能是这样)[2]。 尽管它被广泛使用,但在AVI文件中包含时间码有几种竞争方法,这影响了电影和电视后期制作格式的可用性。对于WAV音频文件,Broadcast Wave扩展旨在标准化后期制作元数据,但尚未出现AVI文件的等效文件。 AVI不打算包含可变帧频材质。这种限制的解决方法大大增加了开销。 AVI的目的不是要使用任何压缩技术来包含视频,该技术需要访问当前帧之外的未来视频帧数据。现有的方法可以支持依赖于此功能的现代视频压缩技术(如MPEG-4),尽管这超出了原始规范的意图,并且可能会导致播放软件出现问题,而这种情况并不预期这种用法。 AVI不能可靠地包含某些特定类型的可变比特率(VBR)数据(如采样率低于32 kHz的MP3音频)。 通常用于编码标准清晰度电影的分辨率和帧率的AVI文件开销约为每小时5MB的视频,其意义因应用程序而异。 更新的容器格式(如Matroska,Ogg和MP4)可以解决所有这些问题,尽管软件可以免费使用这些更新技术来创建和正确重放AVI文件。