如何在安卓设备上通过Google Drive链接播放视频

4

我想在Android应用中展示视频。我在谷歌上搜索了以下代码:

VideoView videoView = (VideoView) findViewById(R.id.videoView);

String vidAddress = "https://docs.google.com/a/user.co.jp/file/d/something..private cookie/preview";

Uri videoUri = Uri.parse(vidAddress);

MediaController mediaController = new MediaController(this); mediaController.setAnchorView(videoView); videoView.setMediaController(mediaController);

videoView.setVideoURI(videoUri); videoView.start();

我将以上代码放置在活动的onCreate方法中。

当我运行应用程序时,它会显示错误消息“抱歉,无法播放此视频。”

日志如下所示:

07-15 13:58:13.110: V/MediaPlayer-JNI(19546): native_setup
07-15 13:58:13.110: V/MediaPlayer(19546): constructor
07-15 13:58:13.125: V/MediaPlayer(19546): setListener
07-15 13:58:13.125: I/MediaPlayer(19546): path is null
07-15 13:58:13.125: D/MediaPlayer(19546): Couldn't open file on client side, trying server side
07-15 13:58:13.140: V/MediaPlayer(19546): setVideoSurfaceTexture
07-15 13:58:13.140: V/MediaPlayer-JNI(19546): setAudioStreamType: 3
07-15 13:58:13.140: V/MediaPlayer(19546): MediaPlayer::setAudioStreamType
07-15 13:58:13.140: V/MediaPlayer(19546): setVideoSurfaceTexture
07-15 13:58:13.140: V/MediaPlayer(19546): prepareAsync
07-15 13:58:16.810: V/MediaPlayer(19546): message received msg=100, ext1=1, ext2=-2147483648
07-15 13:58:16.810: E/MediaPlayer(19546): error (1, -2147483648)
07-15 13:58:16.810: V/MediaPlayer(19546): callback application
07-15 13:58:16.810: V/MediaPlayer(19546): back from callback
07-15 13:58:16.815: E/MediaPlayer(19546): Error (1,-2147483648)
07-15 13:58:16.815: D/VideoView(19546): Error: 1,-2147483648

我能在浏览器上看到视频。

上传的视频文件类型为mpg、mp4和wmv。

如果有人有解决方案,请帮忙。

谢谢

编辑:经过一些工作,我发现一个原因是Android版本4.0.3。上述代码仅适用于示例网址,如http://download.itcuties.com/teaser/itcuties-teaser-480.mp4,仅在4.2.2中运行。来自Google文档网址的视频仍无法正常播放。我该怎么办才能在4.0.3上播放它?


尝试使用ExoPlayer,在ExoPlayer中播放视频可能会起作用。 - bhavesh kaila
@bhaveshkaila 你好 Bhavesh 先生,我尝试使用 exoplayer。在客户公司中,他们正在使用 Android 4.0.3。由于 4.0.3 中没有 exoplayer 核心类,所以我将库更改为 4.2.2,但在运行时在 4.0.3 手机上出现了 java.lang.verifyerror。 - compyutech
@bhaveshkaila 你好,Bhavesh先生,我尝试使用上述代码在安卓4.2.2手机上播放一些mp4视频,它可以正常运行,但是在4.0.3上无法播放,可能的原因是什么?根据文档,.mp4支持3.0以上版本--Piyush Merja - compyutech
请按照此使用Google Drive播放视频的方法进行操作。 - Soeurng Sar
这个回答似乎是2019年最好的:https://stackoverflow.com/questions/52892844/i-am-trying-to-play-video-from-google-drive-using-shareable-link-in-video-view-b - Duane
3个回答

1
你将要解析的URL与VideoView不兼容,因为它只是用于在HTML中嵌入Iframe的Web URL。请点击这里获取解决方案。

0

从我找到的资料看,这似乎是一个普遍问题。请参见thisthis

因此,问题很可能是您的视频格式不正确(基本H.264)。试着找到一个这种格式的视频或者将您的视频转换一下,然后您的代码就可以工作了。


0

你可以使用网页视图

String frameVideo = "<html><body>Video From YouTube<br><iframe width=\"420\" 
height=\"315\"  src=\"https://drive.google.com/file/d/VIDEO_ID/preview\" 
    frameborder=\"0\" allowfullscreen></iframe></body></html>";

    WebView myWebView = (WebView) findViewById(R.id.mWebView);

    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    myWebView.loadData(frameVideo, "text/html", "utf-8");

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