视频播放完毕后启动 Activity

Posted

技术标签:

【中文标题】视频播放完毕后启动 Activity【英文标题】:Starting Activity when video is finished playing 【发布时间】:2011-09-06 05:24:44 【问题描述】:

在我的 android 应用中,我正在尝试在播放的视频结束后简单地返回到我的主 Activity。我尝试了许多解决方法,但我找不到从视频 onCompletionListener 调用 StartActivity 的方法 - 我收到“无法从 Activity 类型对非静态方法 startActivity(Intent) 进行静态引用”错误。

我尝试从 videoView 之前的 Activity 获取上下文,并将其传递给 intent/startActivity。这允许应用程序编译,但随后出现运行时异常。

这是现在的代码,它得到“无法进行静态引用”错误 - 任何帮助将不胜感激!

public class Videoscreen extends Activity

public static VideoView myVideoView;

public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.videoplay);
    myVideoView = (VideoView) findViewById(R.id.main_videoview);
    System.out.println("playing video oncreate");
    playVideo();

public static void playVideo()

    // video finish listener
    myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() 

        @Override
        public void onCompletion(MediaPlayer vmp) 
            Intent intent = new Intent();
            intent.setClass(Videoscreen.this, Game.class);
            Videoscreen.startActivity(intent);
        
    ); 

    String low_word = SpellingView.get_low_word();
    Uri bubblesUri = Uri.parse("android.resource://org.lalloinc.ilovetrucks/raw/"+ low_word + "_vid");
    myVideoView.setVideoURI(bubblesUri);
    myVideoView.start();


【问题讨论】:

非常感谢您的代码 - 我会尽快尝试 【参考方案1】:

如果你知道视频的时间,那么你试试:

String uri1 = "android.resource://" + getPackageName() + "/" + R.raw.race3;
        vd.setVideoURI(Uri.parse(uri1)); 
        vd.start();

new Thread() 
             public void run() 
                     try

                             sleep(50000);
                      catch (Exception e) 

                     
                   Intent intent = new Intent(Video.this, Another.class);
                   startActivity(intent);
                   finish();
             
     .start();

如果你不知道时间,那么你得到的时间是:

int vtime = vd.getDuration();

然后在线程睡眠时,你只需输入这个整数。

【讨论】:

【参考方案2】:

如果您从想要稍后返回的 Activity 启动视频 Activity,只需在视频结束时调用 finish() 即可。

再次启动主 Activity 会创建一个不一定需要的 Activity 堆栈。

【讨论】:

以上是关于视频播放完毕后启动 Activity的主要内容,如果未能解决你的问题,请参考以下文章

视频播放完毕后开始音频?

Swift:在avqueueplayer中播放完毕后重播视频

请问使用 易语言 如何 获得 在线视频的时长,实现 一条视频播放完毕后,自动播放下一个视频, 如果有源代

手把手教你做视频播放器

从另一个活动返回后,VideoView 上的视频播放消失

使用腾讯视频播放器播放节目时,提示使用腾讯视频播放器播放节目时,播放器错误。错误码为9798该怎么办?