首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有MediaController的Android MediaController-如何在流中禁用查找

带有MediaController的Android MediaController-如何在流中禁用查找
EN

Stack Overflow用户
提问于 2015-01-20 13:49:04
回答 1查看 1.8K关注 0票数 1

如果从设备上播放视频,媒体播放器就知道它的精确长度,并通过移动中间主查找栏中的拇指来快速转发视频,这似乎是不可能的。如果播放来自互联网的流媒体视频,视频的长度是未知的,使用拇指查找会导致视频停止响应。

我想知道如何禁用拇指,直到视频被完全缓冲?然后显示它并启用快速转发。

以下是我的视频播放器代码:

代码语言:javascript
复制
    setContentView(R.layout.layout_fragment_video_fullscreen);
    vvVideoFullscreen = (VideoView) findViewById(R.id.vvVideoFullscreen);
    rlVideoFullscreen = (RelativeLayout) findViewById(R.id.rlVideoFullscreen);
    videoUri = Uri.parse(video.getUrl());
    vvVideoFullscreen.setVideoURI(videoUri);
    mediaController = new MediaController(this);
    mediaController.setMediaPlayer(vvVideoFullscreen);
    mediaController.setAnchorView(vvVideoFullscreen);
    vvVideoFullscreen.setMediaController(mediaController);
    vvVideoFullscreen.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

        @Override
        public void onPrepared(MediaPlayer mp) {
            progressDialog.dismiss();
            rlVideoFullscreen.setVisibility(View.VISIBLE);
            vvVideoFullscreen.start();
            mediaController.show(3000);
        }
    });

vVideoFullscreen.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {
            finish();

        }
    });

    vvVideoFullscreen.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_UP) {
                if (vvVideoFullscreen.isPlaying()) {

                    vvVideoFullscreen.pause();
                    mediaController.hide();

                } else {

                    vvVideoFullscreen.start();
                    mediaController.show();

                }

            }
            return true;
        }

    }); // End of setOnTouchListener
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-28 07:13:23

您尝试过在您的onBufferingUpdateListener()中添加mediaplayer吗?从文件中可以看出:

代码语言:javascript
复制
public abstract void onBufferingUpdate (MediaPlayer mp, int percent)

在缓冲通过逐步HTTP下载接收的媒体流时调用以更新状态。接收到的缓冲百分比表示已经缓冲或播放了多少内容。例如,当一半内容已被播放时,缓冲更新为80 %,表明接下来30 %要播放的内容已被缓冲。

因此,当这个回调被100%调用时,您知道您的视频是完全缓冲的。

若要禁用所有播放控件,只需在完成缓冲时调用mediaController.setMediaPlayer(...)

如果您只想禁用查找拇指,我建议您实现自己的MediaController.MediaPlayerControlInterface,并对MediaPlayer对象进行所有调用。然后,通过让canSeekForward()canSeekBackward()方法返回false,并使seekTo(int pos)方法不对您的MediaPlayer执行任何操作,可以禁用查找。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28046957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档