我想在 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上玩它
您解析为 Uri 的 url 与 VideoView 不兼容,因为它只是一个用于在 html 中嵌入 Iframe 的 Web url。请按照此此处获取解决方案。
您可以使用网页视图
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");
我应用了这个,它对我有用
要在 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 云端硬盘中的视频!