【问题标题】:Detect when videoview stops playing检测视频视图何时停止播放
【发布时间】:2011-11-25 08:44:17
【问题描述】:

我有这段代码用于在 VideoView 上播放视频

myVideoView = (VideoView) findViewById(R.id.VideoView);
myVideoView.setVideoURI(Uri.parse(path));
myVideoView.requestFocus();
myVideoView.start();

视频播放完毕后,我收到消息:“抱歉,无法播放此视频”。我想缓存视频播放完毕的那一刻。我该怎么做?

这是我的代码:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video);

        Bundle extras = getIntent().getExtras();
        path = extras.getString("path");
        idPlaylist = extras.getString("idPlaylist");
        timer = extras.getString("timer");

        myVideoView = (VideoView) findViewById(R.id.VideoView);
        myVideoView.setVideoURI(Uri.parse(path));
        myVideoView.requestFocus();
        myVideoView.start();

        myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                Intent i = new Intent(getBaseContext(),
                        com.PlayerOrange.ViewPlaylist.class);
                i.putExtra("id", idPlaylist);
                i.putExtra("timer", timer);
                startActivity(i);
                finish();           
                }
          });

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        System.out.println("Playing "+myVideoView.isPlaying());
        if ((keyCode == KeyEvent.KEYCODE_BACK) && (myVideoView.isPlaying()==true)) {
                //nothing happens
        } else {
            Intent i = new Intent(getBaseContext(),
                    com.PlayerOrange.ViewPlaylist.class);
            i.putExtra("id", idPlaylist);
            i.putExtra("timer", timer);
            startActivity(i);
            finish();
            return true;
        }

        return super.onKeyDown(keyCode, event);
    }

【问题讨论】:

  • 我编辑了我的问题。我希望当按下后退按钮并且视频正在播放时没有任何反应,但它也不起作用。
  • 什么是 currentActivityName ?
  • 我收到同样的信息,而且 VideoView 不是静态的。
  • 访问我在答案中添加的链接。在我的情况下,我尝试了您的代码并且它的工作正常..

标签: android android-videoview


【解决方案1】:

你试过了吗?

myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

    @Override
    public void onCompletion(MediaPlayer vmp) {
        Intent i = new Intent(getBaseContext(),
                    com.PlayerOrange.ViewPlaylist.class);
            i.putExtra("id", idPlaylist);
            i.putExtra("timer", timer);
            startActivity(i);
            currentActivityName.finish();           
    }
});  

还要确保您的 myVideoView 不是静态的。如果是,则删除静态..

更多信息here

Starting Activity when video is finished playing

Android – Video/Music player sample

Playing Video

OnCompletion video notification on MediaController and VideView usage?

Android - Listener (or handler) for video finish

【讨论】:

  • 它不起作用,我仍然收到消息“抱歉,无法播放此视频”......现在如果我按音量键,则会调用 onCompletion 中的代码:(
  • 如何去除静电?
猜你喜欢
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
相关资源
最近更新 更多