好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

手机视频播放器

手机视频播放器

教你制作简易手机视频播放器--核心原理

 

不到一百行代码,教你制作一个手机视频播放器!这里我们使用系统自带的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/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于手机视频播放器的详细内容...

  阅读:28次