zoukankan      html  css  js  c++  java
  • 媒体播放自定义界面

    public class VideoActivity extends Activity implements Callback{
    private SurfaceView view;
    private SurfaceHolder holder;
    private MediaPlayer mPlayer;

    private String path;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.video_main);

    initWidgets();
    }

    private void initWidgets() {
    view=(SurfaceView) findViewById(R.id.surfaceView);

    holder=view.getHolder();
    holder.setFixedSize(320, 480);
    holder.setKeepScreenOn(true);
    //设置回调的监听
    holder.addCallback(this);

    path=getIntent().getStringExtra("path");
    }

    @Override
    public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {

    }

    @Override
    public void surfaceCreated(SurfaceHolder arg0) {
    mPlayer=new MediaPlayer();
    try {
    mPlayer.setDataSource(path);
    mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mPlayer.setDisplay(holder);

    mPlayer.prepare();
    } catch (IllegalArgumentException e) {
    e.printStackTrace();
    } catch (SecurityException e) {
    e.printStackTrace();
    } catch (IllegalStateException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder arg0) {
    mPlayer.release();
    }

    public void play(View v){
    if (!mPlayer.isPlaying()) {
    mPlayer.start();
    }
    }
    }

    public class MainActivity extends Activity implements SurfaceHolder.Callback {//2.实现回调SurfaceHolder.Callback
    private VideoView videoView;

    // 第二种界面
    private SurfaceView view;
    private SurfaceHolder holder;

    private MediaPlayer mPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.vedio_main);

    // String path = Environment.getExternalStorageDirectory()+"/move.mp4";
    // //初始化视频界面
    // videoView = (VideoView)findViewById(R.id.video);
    //
    // //向视频界面加载视频源
    // videoView.setVideoPath(path);
    //
    // MediaController controller = new MediaController(this);//控制中心
    // controller.setMediaPlayer(videoView);//将播放界面用controller来控制
    //
    // videoView.setMediaController(controller);//界面与控制中心绑定
    // videoView.requestFocus();//设置视频有焦点

    // 自定义的界面:视频播放器,SurfaceView是专做界面的容器
    view = (SurfaceView) findViewById(R.id.view);

    // 1.绑定界面并设置参数
    holder = view.getHolder();// 实例化视频Holder对象,此时由holder来设定参数
    holder.setFixedSize(320, 480);// 视频分辨率,不写就是默认
    holder.setKeepScreenOn(true);// 屏幕一直开着

    //设置回调的监听 
    holder.addCallback(this);
    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
    int height) {//界面改变时

    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {//创建界面的时候
    mPlayer = new MediaPlayer();
    try {
    // Cursor cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null,null,null,null);
    // while(cursor.moveToNext()){
    // Log.i("path", cursor.getString(cursor.getColumnIndex(Media.DATA)));
    // }

    mPlayer.setDataSource(Environment.getExternalStorageDirectory()+"/move.mp4");
    mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//音源类型
    mPlayer.setDisplay(holder);//加载设定好的自定义界面
    mPlayer.prepare();//准备
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {//销毁界面
    if(mPlayer.isPlaying()){
    mPlayer.stop();
    mPlayer.release();
    }
    }

    //播放按钮
    public void play(View v){
    if(!mPlayer.isPlaying()){
    mPlayer.start();
    }
    }
    }

  • 相关阅读:
    递归要记得返回
    git push的时候报Unable to find remote helper for 'https'的错误
    iphone手机上的click和touch事件
    对jquery的conflict方法的解读
    开发富文本编辑器的一些体会
    使用jquery制作动态加载型菜单
    解决jquery$命名符和其它框架的冲突问题
    基于geolocation来获取经纬度地址
    Python学习笔记2解析数据
    Python学习笔记1数据类型
  • 原文地址:https://www.cnblogs.com/wangfeng520/p/5123492.html
Copyright © 2011-2022 走看看