手机视频播放器
教你制作简易手机视频播放器--核心原理
不到一百行代码,教你制作一个手机视频播放器!这里我们使用系统自带的api来制作一个简易视频播放器,实现控制的功能,能够监听到视频准备状态,视频播放完成状态,还有视频播放错误状态,就这么多行代码就可以制作出来一个简易播放器,大家快来试试吧!
程序员的最好交流就是看代码,所以废话不多说,代码大家一看都懂!保存下来,互相学习
效果如下,这是播放的网上的一段视频,效果大家可以看一下效果,文章写的仓促,也没有设置横屏效果,将就着看吧:
1.首先是布局文件,使用VideoView控件
< VideoView android:id ="@+id/vv" android:layout_width ="fill_parent" android:layout_height ="fill_parent" />2.在清单文件中加入如下的过滤器
< intent-filter > < action android:name ="android.intent.action.VIEW" /> < data android:mimeType ="video/*" android:scheme ="http" /> < data android:mimeType ="video/*" android:scheme ="file" /> < data android:mimeType ="audio/*" android:scheme ="http" /> < data android:mimeType ="audio/*" android:scheme ="file" /> < category android:name ="android.intent.category.DEFAULT" />3.直接上核心代码
import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Intent; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.media.MediaPlayer.OnErrorListener; import android.media.MediaPlayer.OnPreparedListener; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.widget.MediaController; import android.widget.Toast; import android.widget.VideoView; public class AndyePlay extends Activity { private VideoView vv; private Uri uri; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); vv = (VideoView) findViewById(R.id.vv); Intent dIntent = getIntent(); // 获得意图,并获得数据 if (dIntent != null ){ // 把地址取出来 uri = dIntent.getData(); // 也可以指定地址 // uri =Uri.parse("file: // /sdcard/%E7%8F%A0%E5%B8%9.mp4"); if (uri != null ){ vv.setVideoURI(uri); } } // 开始准备 vv.setOnPreparedListener( new OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { AlertDialog.Builder builder = new Builder(getApplicationContext()); builder.setMessage(R.string.message); vv.start(); } }); // 错误监听器 vv.setOnErrorListener( new OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "播放错误", 0 ).show(); return false ; } }); // 播放完成监听 vv.setOnCompletionListener( new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "视频播放完了哦", 0 ).show(); } }); // 获得系统的控制面板 vv.setMediaController( new MediaController(AndyePlay. this )); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true ; } }本文基于中国大陆许可协议发布,版权归Andye拥有,欢迎转载,但是必须保留本文的署名Andye(包含链接http://www.cnblogs.com/yejiurui)。如您有任何疑问或者授权方面的协商,请给我留言。
分类: Android开发
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did47381