为视频播放器启动新活动时,如何强制android视频播放器在视频播放后不退出

Posted

技术标签:

【中文标题】为视频播放器启动新活动时,如何强制android视频播放器在视频播放后不退出【英文标题】:When starting a new Activity for video player, how to force android video player to not exit after the video is played 【发布时间】:2021-12-03 16:35:15 【问题描述】:

我正在使用以下意图通过 android 默认视频播放器播放视频。

        File file = new File(galleryList.get(getAbsoluteAdapterPosition()).getPath());
        Intent i = new Intent(Intent.ACTION_VIEW);
        if (GalleryMediaHelper.isVideoFile(galleryList.get(getAbsoluteAdapterPosition()).getPath())) 
            i.setDataAndType(FileProvider.getUriForFile(context, AUTHORITY, file), "video/*");
        
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | FLAG_GRANT_READ_URI_PERMISSION | FLAG_GRANT_WRITE_URI_PERMISSION);
        if (i.resolveActivity(context.getPackageManager()) != null)
            context.startActivity(i);
      

到目前为止一切顺利。视频播放器开始播放视频。 问题是,当播放视频时,视频播放器关闭并且用户返回到我的应用程序。 -> 挪威克朗

如何强制视频播放器不关闭并在重复视频时播放或等待用户按返回退出视频播放器?

【问题讨论】:

【参考方案1】:

问题是,播放视频时,视频播放器关闭,用户返回我的应用

该行为取决于视频播放器应用。根据预安装和用户安装的视频播放器应用程序,有数百个(如果不是数千个)可能的视频播放器应用程序可以处理您的 Intent

如何强制视频播放器不关闭,或者重复播放视频,或者只是等待用户按回,以便他/她可以对视频播放器做任何他/她想做的事情(暂停、停止、重播等)?

这是不可能的。视频播放器应用的行为取决于该应用的开发者。

如果您需要对用户体验进行这种级别的控制,请实现您自己的视频播放器,例如通过集成 ExoPlayer。

【讨论】:

使用视频播放器正常播放视频时,设置中有repeat video playback的选项可以选择。但是,当从我的应用程序播放视频时,从同一视频播放器的衍生活动打开设置时,repeat video playback 的设置显示为灰色。太糟糕了:| @RandomType:这是该特定视频播放器应用程序的行为。您可以通过使用真正的 MIME 类型而不是 video/* 来逐步改进结果。但是,总的来说,您将视频播放委托给任意应用程序,而该应用程序的功能并不完全在您的控制之下。 我试过/video/mp4 但还是一样! 我试图找到比Intent.ACTION_VIEW 更具体的Intent.ACTION_XXX 或“Intent.FLAG_XXXXX”,但没有找到任何东西。 我认为它只适用于 VLC,有参数可以传递给重复模式。好吧,这对我有用,但如果没有 VLC,那么就没有办法...wiki.videolan.org/VLC-0-9-x_command-line_help

以上是关于为视频播放器启动新活动时,如何强制android视频播放器在视频播放后不退出的主要内容,如果未能解决你的问题,请参考以下文章

视频播放停止时如何切换到活动

Android:尝试从 URI 播放视频时应用程序强制关闭

如何在 android 的 mediaplayer 中停止和播放新歌曲?

Android:从应用程序类启动新活动

如何清除 Webview 内容以更改 Android Oreo 中的视频

如何刷新活动