请选择 进入手机版 | 继续访问电脑版

牛大大的个人博客

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2497|回复: 0

定义SeekBar监听类OnSeekBarChangeListener

[复制链接]

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
发表于 2020-4-26 14:31:47 | 显示全部楼层 |阅读模式
定义SeekBar监听类OnSeekBarChangeListener   



//定义SeekBar监听类OnSeekBarChangeListener   
    private SeekBar.OnSeekBarChangeListener on\=new SeekBar.OnSeekBarChangeListener() {

        //进度级别已经更改的通知        
        @Override
        public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
        }



        // 用户已经开始了一个触摸手势的通知         

        @Override

        public void onStartTrackingTouch(SeekBar seekBar) {

            //如果在播放中,指定视频播发位置
            if(mMediaPlayer!=null&&mMediaPlayer.isPlaying()){
                mMediaPlayer.pause();
            }
        }



         // 用户已经结束了一个触摸手势的通知         

        @Override

        public void onStopTrackingTouch(SeekBar seekBar) {

            Log.e( "Progress",Integer.toString(seekBar.getProgress()));

            //如果在播放中,指定视频播发位置

            if(mMediaPlayer!=null&&mMediaPlayer.isPlaying()){

                mMediaPlayer.seekTo(seekBar.getProgress());

            }else{

                mMediaPlayer.seekTo(seekBar.getProgress());

                mMediaPlayer.start();

            }

        }

    };


mMediaPlayer 监听

mMediaPlayer= new MediaPlayer();
                //把res/raw的资源转化为Uri形式访问(android.resource://   rtmp://58.200.131.2:1935/livetv/fhzx)
                //http://112.50.243.7/PLTV/88888888/224/3221225901/index.m3u8
                Uri uri = Uri.parse("rtmp://58.200.131.2:1935/livetv/fhzx");
                //设置播放资源(可以是应用的资源文件/url/sdcard路径)
                mMediaPlayer.setDataSource(MainActivity.this,uri);
                //设置渲染画板
                mMediaPlayer.setSurface(surface);
                //设置播放类型
                mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                //播放完成监听
                mMediaPlayer.setOnCompletionListener(onCompletionListener);
                //预加载监听
                mMediaPlayer.setOnPreparedListener(onPreparedListener);
                //设置是否保持屏幕常亮
                mMediaPlayer.setScreenOnWhilePlaying(true);
                //同步的方式装载流媒体文件
                mMediaPlayer.prepare();               

                mMediaPlayer.setOnInfoListener(OnInfoListener);
                mMediaPlayer.setOnErrorListener(OnErrorListener);
                mMediaPlayer.setOnBufferingUpdateListener(OnBufferingUpdate);




    //缓存监听/
    private MediaPlayer.OnBufferingUpdateListener OnBufferingUpdate = new MediaPlayer.OnBufferingUpdateListener() {
               
                @Override
                public void onBufferingUpdate(MediaPlayer mp, int percent) {
                        // TODO Auto-generated method stub
                        Log.i("Buffer","88:"+percent+"%");
                }
        };   

      //错误监听
    private MediaPlayer.OnErrorListener OnErrorListener = new MediaPlayer.OnErrorListener() {
               
                @Override
                public boolean onError(MediaPlayer mp, int what, int extra) {
                        // TODO Auto-generated method stub
                        Toast.makeText(getBaseContext(),"该视频飞到月球了。。。",Toast.LENGTH_LONG).show();
                        return false;
                }
        };


            // 等待缓冲监听
    private MediaPlayer.OnInfoListener OnInfoListener = new MediaPlayer.OnInfoListener() {
               
                @Override
                public boolean onInfo(MediaPlayer mp, int what, int extra) {
                        // TODO Auto-generated method stub
                        switch (what) {
            case MediaPlayer.MEDIA_INFO_BUFFERING_START:
                    loadingImageView.setVisibility(View.VISIBLE);
                break;
            case MediaPlayer.MEDIA_INFO_BUFFERING_END:
                // 缓存完成,继续播放
                    loadingImageView.setVisibility(View.INVISIBLE);
                break;
            }
            return true;
                }
        };

    /**
     * 当装载流媒体完毕的时候回调
     */
    private MediaPlayer.OnPreparedListener on\=new MediaPlayer.OnPreparedListener(){
        @Override
        public void onPrepared(MediaPlayer mp){
            //隐藏图片
                anim.stop();  
                loadingImageView.setVisibility(View.GONE);  
            videoImage.setVisibility(View.GONE);
            //开始播放
            mMediaPlayer.start();            
            //用线程更新进度
            handler.post(mTicker);
        }
    };

    /**
     * 流媒体播放结束时回调类
     */
    private MediaPlayer.OnCompletionListener on\=new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mediaPlayer) {
                anim.start();
            videoImage.setVisibility(View.VISIBLE);
            loadingImageView.setVisibility(View.VISIBLE);

            //删除执行的Runnable 终止计时器
            handler.removeCallbacks(mTicker);
        }
    };




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|牛大大的个人博客 ( 苏ICP备17043571号-2 )

GMT+8, 2021-6-15 11:12 , Processed in 0.186602 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表