在Android原生应用程序中播放Vimeo视频

12

我正在为本地Android开发Vimeo视频应用程序,但它不支持VideoView。请问是否有任何Android相关查询或示例可供参考,以便最终输出为.mp3/.mp4格式。

我在Android WebView中尝试了iframe,它在Android WebView中运行良好,但我无法获得进度条,并且OnPause()无法暂停视频。 在这里,我仅能获得暂停和播放按钮。

enter image description here

例如:player.vimeo.com/video/49462103。

我想在Android原生设备上播放此视频。

 <VideoView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/videoView"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

更新:在以下链接中更新: Vimeo网站主题-1 Vimeo网站主题-2

enter image description here

我遇到了上述错误


1
请问您能否分享一下您的WebView代码?我甚至无法嵌入Vimeo视频播放器。 - Bhavik Mehta
@BhavikMehta,你找到如何嵌入Vimeo视频播放器了吗? - Kriti
如何嵌入 Vimeo 视频? - Arnold Brown
3个回答

9
我为 Vimeo 制作了一个基于 WebView 的本地播放器,支持公共和私人视频。
试试看: https://github.com/ct7ct7ct7/Android-VimeoPlayer
<com.ct7ct7ct7.androidvimeoplayer.view.VimeoPlayerView
    android:id="@+id/vimeoPlayer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>



VimeoPlayerView vimeoPlayer = findViewById(R.id.vimeoPlayer);
getLifecycle().addObserver(vimeoPlayer);

//public video
vimeoPlayer.initialize(59777392);

//If video is open. but limit playing at embedded.
vimeoPlayer.initialize({YourPrivateVideoId}, "SettingsEmbeddedUrl")

//If video is pirvate.
vimeoPlayer.initialize({YourPrivateVideoId},"VideoHashKey", "SettingsEmbeddedUrl")

我已经检查了您的库,它很好。但是我们能否在运行时以编程方式更改纵横比呢?例如,第一次我将选择1.334 <PORTRAIT>,然后在全屏监听器中,我想将其更改回默认的1.778。但是没有setAspectRatio()方法。 - Paranoid
很遗憾,这个优秀的库只能在使用旧版本的Glide时才能正常工作。 - Fattie
有没有办法在Android Java中使用Vimeo视频?最新版本的Glide似乎无法正常工作。 - JIL Android dev

5

Vimeo的嵌入代码应该可以在Android WebView中使用。Vimeo仅向PRO用户提供其用户自己的视频的.mp4链接。

另一个选择是使用Android应用程序的official Deep Link library。这将允许您在Android应用程序中打开任何Vimeo视频。


1
正如您所提到的,Vimeo仅向PRO用户提供其自己视频的.mp4链接。如何访问这个链接?我能否获得在Android中获取.Mp4格式的示例或样本?目前我正在获取49462103号码以播放视频。 - Rao's
1
最后我找到了一个解决方案,这是正确的方法吗?http://player.vimeo.com/video/123891946/config -- 使用Get方法。作为响应,我将得到.mp4格式。 - Rao's
该端点不受 Vimeo 支持,可能随时会出现故障。唯一支持的方法是通过 Vimeo API,供 PRO 用户访问自己的视频。视频文件可以通过 API 在任何视频端点(例如 https://api.vimeo.com/me/videos)中公开访问。 - Dashron
这是什么?我在哪里可以验证经过身份验证的用户。 - Rao's
3
有人可以提供一个简单易懂的样例或教程,来将 VIMEO 视频嵌入到安卓本地应用中吗?非常感谢! - Arnold Brown
显示剩余5条评论

2
您可以使用Exoplayer播放vimeo视频。Exoplayer更加可定制。您只需要从视频配置链接中提取url链接即可。您可以使用retrofit来提取视频url。
BASE_URL = "https://player.vimeo.com/video/"
您需要使用以下类似的get方法:
@GET("{id}/{config}")
Call<JsonObject>getVideoLink(@Path("id") String id, @Path("config") String config);

您可以从视频链接中获取id。例如:"https://vimeo.com/123456789/" 这里的id是:123456789。

 JsonObject jsonObject = response.body();
            JsonObject req = jsonObject.getAsJsonObject("request");
            JsonObject file = req.getAsJsonObject("files");
            JsonArray arr = file.getAsJsonArray("progressive");
            String url = arr.get(0).getAsJsonObject().get("url").getAsString();

           // Build the media item.
            MediaItem mediaItem = MediaItem.fromUri(url);
            // Set the media item to be played.
            player.setMediaItem(mediaItem);
            // Prepare the player.
            player.prepare();
            // Start the playback.
            player.play();

不要忘记先初始化Exoplayer


更详细的解释请查看我的答案:https://stackoverflow.com/a/75175407/9747826 - Damanpreet Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接