1

次のように、実行時に VideoView を作成しています。

@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 ang JB の LogCat では、MediaPlayer が呼び出されないことを忘れていました (Froyo と Gingerbread では、MediaPlayer クラスによって生成された情報がいくつかあります)。

4

1 に答える 1

0

res の raw フォルダーからビデオ リソースを取得しています。直接 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();
于 2012-09-12T06:22:57.063 に答える