【问题标题】:Custom media player controls for Android player适用于 Android 播放器的自定义媒体播放器控件
【发布时间】:2014-09-03 12:21:44
【问题描述】:

我想在我的应用上播放来自 YouTube 的视频,但需要使用以下自定义媒体播放器控件:

如果我将这些按钮放在播放器下方的单独布局上,它会起作用,但我需要覆盖 YouTube 不支持的布局(ActionBar 除外)。如何修改 Android 播放器以满足我的需要?是否可以使用不同的媒体播放器(VideoView)来播放 YouTube 视频/播放列表?或者ActionBar 可以用来包含那些媒体控件,包括SeekBar?请提出建议。

【问题讨论】:

  • ***??我被困在 3 视图中 2 天?这是什么??没有youtube人来帮忙吗??即使是一条评论也会指导.. #stackoverflow 已经死了吗?
  • 更新您的标签。你用 youtube-api 是什么语言? Javascript ?
  • 恐怕没有办法使用YouTube Android Player API 来实现你想要的。以下是来自YouTubePlayerView 文档的引用:“此外,在播放视频时,不允许将视图与其他视图重叠。”
  • 我认为您可以使用操作栏来包含整个视图,使用 actionBar.setCustomView(view); 这就是您要找的吗?

标签: android youtube youtube-api media-player android-youtube-api


【解决方案1】:

或者,您可以使用ExoPlayer 并自定义控制器视图:

<com.google.android.exoplayer2.ui.PlayerView  
   android:id="@+id/video_view"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   app:controller_layout_id="@layout/custom_playback_control"/>

XML 布局示例:

https://raw.githubusercontent.com/google/ExoPlayer/release-v2/library/ui/src/main/res/layout/exo_playback_control_view.xml

有关更多信息,请阅读本指南:

https://codelabs.developers.google.com/codelabs/exoplayer-intro/#6

【讨论】:

    【解决方案2】:

    如果您有 YouTube 视频的直接链接,则可以通过 android MediaPlayer 流式传输 youtube 视频。

    This source 建议可以使用 Google Data API 检索直接链接。

    然后要自定义控件,您需要扩展您自己的自定义 MediaController 类,该类在 here 中有详细介绍。


    我能想到的另一种方法是使用本地 html 文件(来自您的资产)在 WebView 中显示视频。在 JQuery 的帮助下,可以调整它的控件。

    这是 JFiddle 中使用 jquery 和 css 设置视频样式的示例:JFiddle (alt link)

    但是请注意,由于 WebView 不久前从 WebKit 升级到 Chromium,因此此方法可能与旧的 android 版本不兼容。旧的 WebView 对 HTML5 和一般视频的兼容性很差。

    【讨论】:

    • 谢谢。我一定会试试这个
    【解决方案3】:

    你可以参考下面的链接,你有两个选择首先下载 *.jar 然后导入到你的 android 项目并运行,另一个从 svn 服务器检查源并修改为你想要的。

    https://code.google.com/p/android-youtube-player/
    

    加法

    ...    
    intent.setClass(MainActivity.this, OpenYouTubeActivity.class);
    startActivity(intent);
    

    【讨论】:

    • 我需要自定义 mediaPlayer 控件而不是默认控件
    • 是的,我知道,所以您可以查看源代码,然后根据需要进行修改。因为我看到你说“我想从 YouTube 播放视频”关于这个问题需要特定的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多