使用 android 意图在特定时间打开 youtube 视频

Posted

技术标签:

【中文标题】使用 android 意图在特定时间打开 youtube 视频【英文标题】:Open youtube video at a specific time using android intent 【发布时间】:2017-06-01 12:06:37 【问题描述】:

我正在从我的应用中打开一个 youtube 视频,与此答案类似:https://***.com/a/12439378/379865

我想知道是否可以在指定时间打开视频,例如让视频从 30 秒开始播放,而不是从头开始播放。

【问题讨论】:

我认为当您在特定时间分享 Youtube 视频时,链接会发生变化,因此您可能需要相应地更改视频的链接。 【参考方案1】:

YouTube 有一种很好的方式在视频的 URL 中指示时间。

假设视频的url 是 https://www.youtube.com/watch?v=Z149x12sXsw 您可以引用相同的 URL 并自动播放 30 将&t=0m30s 放在末尾以秒。 打开视频时,传入新的url 延期。它应该看起来像 https://www.youtube.com/watch?v=Z149x12sXsw&t=0m30s

Intent 看起来像 startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.youtube.com/watch?v=Z149x12sXs" + time))); 其中String time = "&t=0m30s";

编辑:YouTube 应用扩展。

public static void watchYoutubeVideo(String id, String time)
    Intent appIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube:" + id + time));
    Intent webIntent = new Intent(Intent.ACTION_VIEW,
                Uri.parse("https://www.youtube.com/watch?v=" + id + time));
    try 
        startActivity(appIntent);
     catch (ActivityNotFoundException ex) 
        startActivity(webIntent);
    
 

使用该问题的另一个答案。相同的逻辑可以应用于任何意图,只需将Time 字符串添加到URI,如上所示,无论意图如何。

【讨论】:

这在浏览器中启动视频时有效。我需要在使用 YT 应用程序时进行测试。谢谢 对我来说,在 android 5 上使用 vnd.youtube 方式不起作用。它会打开 youtube 应用程序,但无法加载视频。但是,使用 webIntent 打开仍然有效,即使从菜单中选择使用 YouTube 应用打开也是如此。【参考方案2】:

尝试使用类似于此的 url 打开 url https://www.youtube.com/watch?v=u0IU8uQniX8&t=2m35s

其中 t= 以分钟和秒为单位的时间

t=2m35s

【讨论】:

以上是关于使用 android 意图在特定时间打开 youtube 视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中使用意图过滤器获取数据

特定文件扩展名的Android意图过滤器?

如何以编程方式(使用 Intent)在 Android 中打开 My Files 文件夹?

如何强制共享意图打开特定应用程序?

在基于 GUI 的 Android 应用程序中,如何找到启动意图的特定按钮?

使用意图相机时为图像命名