refer to the old exercise "displays video in videoview", we can play video on videoview easily. we can also implement our own event handlers and register with our videoview using the methods setoncompletionlistener(), setonpreparedlistener() and setonerrorlistener().



main code, androidvideoviewactivity.java


Mã nguồn PHP:
[color=#000000]
package com[/color][color=#007700].[/color][color=#0000bb]exercise[/color][color=#007700].[/color][color=#0000bb]androidvideoview[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]app[/color][color=#007700].[/color][color=#0000bb]activity[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]media[/color][color=#007700].[/color][color=#0000bb]mediaplayer[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]net[/color][color=#007700].[/color][color=#0000bb]uri[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]os[/color][color=#007700].[/color][color=#0000bb]bundle[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]mediacontroller[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]toast[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]videoview[/color][color=#007700];public class [/color][color=#0000bb]androidvideoviewactivity [/color][color=#007700]extends [/color][color=#0000bb]activity [/color][color=#007700]{[/color][color=#ff8000]/** called when the activity is first created. */[/color][color=#007700]@[/color][color=#0000bb]override[/color][color=#007700]public [/color][color=#0000bb]void oncreate[/color][color=#007700]([/color][color=#0000bb]bundle savedinstancestate[/color][color=#007700]) { [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]oncreate[/color][color=#007700]([/color][color=#0000bb]savedinstancestate[/color][color=#007700]); [/color][color=#0000bb]setcontentview[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]layout[/color][color=#007700].[/color][color=#0000bb]main[/color][color=#007700]); [/color][color=#0000bb]videoview myvideoview [/color][color=#007700]= ([/color][color=#0000bb]videoview[/color][color=#007700])[/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]videoview[/color][color=#007700]); [/color][color=#0000bb]string viewsource [/color][color=#007700]=[/color][color=#dd0000]"rtsp://v5.cache1.c.youtube.com/cjyleny73wialqklthqivp_asxmyesarfeijbxytz29vz2xlsarsbwluzgv4yivjo6nmx9dvsww=/0/0/0/video.3gp"[/color][color=#007700]; [/color][color=#0000bb]myvideoview[/color][color=#007700].[/color][color=#0000bb]setvideouri[/color][color=#007700]([/color][color=#0000bb]uri[/color][color=#007700].[/color][color=#0000bb]parse[/color][color=#007700]([/color][color=#0000bb]viewsource[/color][color=#007700])); [/color][color=#0000bb]myvideoview[/color][color=#007700].[/color][color=#0000bb]setmediacontroller[/color][color=#007700](new [/color][color=#0000bb]mediacontroller[/color][color=#007700]([/color][color=#0000bb]this[/color][color=#007700])); [/color][color=#0000bb]myvideoview[/color][color=#007700].[/color][color=#0000bb]setoncompletionlistener[/color][color=#007700]([/color][color=#0000bb]myvideoviewcompletionlistener[/color][color=#007700]); [/color][color=#0000bb]myvideoview[/color][color=#007700].[/color][color=#0000bb]setonpreparedlistener[/color][color=#007700]([/color][color=#0000bb]myvideoviewpreparedlistener[/color][color=#007700]); [/color][color=#0000bb]myvideoview[/color][color=#007700].[/color][color=#0000bb]setonerrorlistener[/color][color=#007700]([/color][color=#0000bb]myvideoviewerrorlistener[/color][color=#007700]); [/color][color=#0000bb]myvideoview[/color][color=#007700].[/color][color=#0000bb]requestfocus[/color][color=#007700](); [/color][color=#0000bb]myvideoview[/color][color=#007700].[/color][color=#0000bb]start[/color][color=#007700]();}[/color][color=#0000bb]mediaplayer[/color][color=#007700].[/color][color=#0000bb]oncompletionlistener myvideoviewcompletionlistener[/color][color=#007700]= new [/color][color=#0000bb]mediaplayer[/color][color=#007700].[/color][color=#0000bb]oncompletionlistener[/color][color=#007700](){ @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void oncompletion[/color][color=#007700]([/color][color=#0000bb]mediaplayer arg0[/color][color=#007700]) { [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]maketext[/color][color=#007700]([/color][color=#0000bb]androidvideoviewactivity[/color][color=#007700].[/color][color=#0000bb]this[/color][color=#007700], [/color][color=#dd0000]"end of video"[/color][color=#007700], [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]length_long[/color][color=#007700]).[/color][color=#0000bb]show[/color][color=#007700](); }}; [/color][color=#0000bb]mediaplayer[/color][color=#007700].[/color][color=#0000bb]onpreparedlistener myvideoviewpreparedlistener [/color][color=#007700]= new [/color][color=#0000bb]mediaplayer[/color][color=#007700].[/color][color=#0000bb]onpreparedlistener[/color][color=#007700](){ @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void onprepared[/color][color=#007700]([/color][color=#0000bb]mediaplayer arg0[/color][color=#007700]) { [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]maketext[/color][color=#007700]([/color][color=#0000bb]androidvideoviewactivity[/color][color=#007700].[/color][color=#0000bb]this[/color][color=#007700], [/color][color=#dd0000]"media file is loaded and ready to go"[/color][color=#007700], [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]length_long[/color][color=#007700]).[/color][color=#0000bb]show[/color][color=#007700](); }}; [/color][color=#0000bb]mediaplayer[/color][color=#007700].[/color][color=#0000bb]onerrorlistener myvideoviewerrorlistener [/color][color=#007700]= new [/color][color=#0000bb]mediaplayer[/color][color=#007700].[/color][color=#0000bb]onerrorlistener[/color][color=#007700](){ @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]boolean onerror[/color][color=#007700]([/color][color=#0000bb]mediaplayer arg0[/color][color=#007700], [/color][color=#0000bb]int arg1[/color][color=#007700], [/color][color=#0000bb]int arg2[/color][color=#007700]) { [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]maketext[/color][color=#007700]([/color][color=#0000bb]androidvideoviewactivity[/color][color=#007700].[/color][color=#0000bb]this[/color][color=#007700], [/color][color=#dd0000]"error!!!"[/color][color=#007700], [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]length_long[/color][color=#007700]).[/color][color=#0000bb]show[/color][color=#007700](); return [/color][color=#0000bb]true[/color][color=#007700]; }};}[/color] 
layout, main.xml


Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><textviewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/><videoviewandroid:id="@+id/videoview"android:layout_width="fill_parent"android:layout_height="fill_parent"/></linearlayout>