如何在Android中显示来自谷歌驱动器网址的视频

问题描述 投票:0回答:4

我想在 Android 应用程序中显示视频。我在谷歌上搜索并找到了下面的代码

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

字符串vidAddress =“https://docs.google.com/a/user.co.jp/file/d/something..privatecookie/preview”;

Uri videoUri = Uri.parse(vidAddress);

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

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

我将上面的代码放在activity的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 文档 url 的视频仍然无法正常工作。我应该怎么做才能在4.0.3上玩它

android google-drive-api
4个回答
1
投票

您解析为 Uri 的 url 与 VideoView 不兼容,因为它只是一个用于在 html 中嵌入 Iframe 的 Web url。请按照此此处获取解决方案。


0
投票

据我所知,这似乎是一个常见问题。请参阅这个这个

所以问题可能是您的视频格式不正确(基线 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");

0
投票

我应用了这个,它对我有用

要在 Android 应用程序中显示来自 Google 云端硬盘 URL 的视频,请按照以下步骤操作:

使用公共 URL: 确保您的视频可公开访问。将 Google 云端硬盘 URL 转换为以下格式:

https://drive.google.com/uc?export=download&id=FILE_ID

FILE_ID
替换为您视频的实际 ID。

文件大小限制: 您可以使用上述方法播放最大 100 MB 的视频。对于较大的视频,请继续下一步。

Google Drive API:如果您的视频大于 100 MB,您需要从 Google Cloud Platform (GCP) 生成 API 密钥。使用以下 URL 访问您的视频:

https://www.googleapis.com/drive/v3/files/FILE_ID?alt=media&key=API_KEY

再次将

FILE_ID
API_KEY
替换为您的具体值。

按照这些步骤操作,您应该能够在 Android 应用程序中播放 Google 云端硬盘中的视频!

© www.soinside.com 2019 - 2024. All rights reserved.