2012-09-11 27 views
1

我創建像這樣在運行時VideoView:VideoView不上Android 4.0的工作及以上

@Override 
public View getUIElement(){ 
    if(vv==null){ 
     this.vv = new VideoView(this.getContext()); 
     vv.setVideoURI(Uri.parse(this.url));  
     mc = new MediaController(this.getContext()); 
     vv.setMediaController(mc); 
    } 
    return vv; 
} 

之後,我這個VideoView添加到的LinearLayout我打電話這樣的:

public void initVideo(){ 
    mc.show(); 
    vv.setBackgroundColor(Color.TRANSPARENT); 
    vv.requestFocus(); 
    vv.start(); 
    Log.v("Video",vv.toString()); 
} 

此代碼在Froyo(2.2)和Gingerbread(2.3.5)上完美工作,但在ICS(4.0)和JB(4.1)上沒有任何反應 - VideoView在父視圖中甚至不可見。你有什麼想法爲什麼? 在Uri.parse()我將URL傳遞給mp4文件。

- 編輯 我忘了說,在ICS中的LogCat中,MediaPlayer甚至沒有被調用(在Froyo和Gingerbread中有一些由MediaPlayer類生成的信息)。

+0

[解決] - 這個問題是正確的LayoutParameters。在API <11 WRAP_CONTENT工作正常。在ICS和更新的我不得不手動設置VideoView的高度。如此微不足道,而且很煩人... – przebar

+0

你能否把你的代碼行設置爲videoview的佈局參數。 –

回答

0

我從res中的原始文件夾中獲取我的視頻資源。 您也可以使用直接URL。我已經在下面的代碼中提交了它。

編寫XML佈局文件

VideoView 
     android:id="@+id/videoView1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true"< 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" /> 

,並用Java編寫代碼

video = (VideoView) findViewById(R.id.videoView1); 
video.setVideoPath("android.resource://com.example.s3project/raw/" +R.raw.bggreen1); 
//video.setVideoURI(Uri.parse("http://www.pocketjourney.com/downloads/pj/video/famous.3gp")); 
     video.start(); 
+0

是啊,以防萬一你沒有注意到 - 我在做基本相同的,只是在運行時,而不是在XML。 – przebar

相關問題