Android:使用 JW Player SDK 实现浮动视频播放器(如 YouTube android 应用)

Posted

技术标签:

【中文标题】Android:使用 JW Player SDK 实现浮动视频播放器(如 YouTube android 应用)【英文标题】:Android: Implement floating video player (like YouTube android app) with JW Player SDK 【发布时间】:2017-10-09 21:58:13 【问题描述】:

我正在尝试实现浮动视频播放器(如 YouTube 播放器,当拖动到屏幕右下角时会最小化)。为此,我正在使用 DraggablePanel 库 (https://github.com/pedrovgs/DraggablePanel)。

我在将它与我们的生产代码集成时遇到了一些问题,因此我尝试将它与 JW 播放器示例应用程序集成 (我们在应用中使用的 VideoPlayer 是 JW 播放器)。 JW 播放器示例应用在 GitHub 上:https://github.com/jwplayer/jwplayer-sdk-android-demo

我只更改了 xml 布局。但它没有按预期工作。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical">


    <TextView
        android:id="@+id/output2"
        android:layout_
        android:layout_
        android:textColor="@color/ccl_blue" />

    <com.github.pedrovgs.DraggableView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:draggable_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/draggable_view_my"
        android:layout_
        android:layout_

        draggable_view:bottom_view_id="@+id/output"
        draggable_view:top_view_id="@+id/linearlayout" //if i  give id of JWPlayerView, then app crashes. So i wrapped it inside a LinearLayout

        draggable_view:top_view_margin_right="1dp"
        draggable_view:top_view_resize="true"

        draggable_view:top_view_x_scale_factor="2.5"
        draggable_view:top_view_y_scale_factor="1.5"

        draggable_view:enable_click_to_maximize_view="false"     
        draggable_view:enable_click_to_minimize_view="false">  //this is not working. Player is getting minimised if i click on it


        <LinearLayout
            android:id="@+id/linearlayout"
            android:layout_
            android:layout_
            android:background="@color/gray"
            android:orientation="vertical">

            <com.longtailvideo.jwplayer.JWPlayerView
                android:id="@+id/jwplayer"
                android:layout_
                android:layout_ />

        <TextView                            //this TextView is not coming. Neither in Expanded view nor in minimized view
            android:id="@+id/output"
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:textColor="#f01232"
            android:text="Bottom Text View" />

        </LinearLayout>

    </com.github.pedrovgs.DraggableView>

</FrameLayout>

1) 即使在draggable_view:enable_click_to_minimize_view="false" 时,播放器也会被最小化。所以我无法暂停播放器或单击出现的任何图标 在玩家皮肤上。有时我设法在展开视图模式下单击播放/暂停按钮,但这也会导致播放器视图最小化。

2) 当播放器最小化时,视频帧大部分时间都不会出现。请参阅下面的照片链接。右下角出现白屏。 https://imgur.com/a/kjqyVOe

3) 如果我关闭了最小化的播放器视图(通过将其拖动到左/右),即使 VideoView 消失了,音频仍然会出现。

4) 如果我点击播放器视图上的全屏图标,它会进入全屏状态,但不是显示视频帧,而是出现一个白屏。

5) 最大化玩家真的很难。您必须将最小化视图从中心慢慢向上拖动,否则最小化视图会向左或向右移动并被关闭。

库是否与 JW PlayerView 不兼容?或者有没有其他相同的图书馆?如果没有库,那么我该如何在 android 中实现呢?

【问题讨论】:

【参考方案1】:

像 youtube 这样的浮动视频播放器在技术上被称为画中画模式。当您向后按播放器时,最小化到右下角。即使您可以将播放器拖动到其他位置。这是一个有点漫长的过程,但你可以做到。 Here is reference tutorial.

【讨论】:

以上是关于Android:使用 JW Player SDK 实现浮动视频播放器(如 YouTube android 应用)的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 JW Player 时创建嵌入代码

jw_player v.6 使用主flash版本时如何在点击时间栏上进行搜索?

苹果的jw player怎么用

JW Player 任何 javascript 交互都失败

如何使用 JW Player 播放 rtmp 流?

我可以使用Jw-Player播放Google Drive视频吗?