2012-02-16 158 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文件。