【问题标题】:Mediaplayer does not work with Google Drive mediafilesMediaplayer 不适用于 Google Drive 媒体文件
【发布时间】:2014-10-21 01:06:11
【问题描述】:

我为 Google Drive 开发了两个 Android 应用。用于图像数据的图库应用程序运行良好。我的第二个应用是音乐播放器。在这里,我确实对 Google Drive 提供的下载链接有一些问题。一个例子:

这是 Google 云端硬盘为 MP3 文件提供的下载链接:

https://docs.google.com/uc?authuser=0&id=0B2hum21gMcbZaTJNMHIrbnJqSUk3aTFYb1pzOStyNjN3Z3ZnPQ&export=download&revision=true

在浏览器中使用此链接时,文件被下载。

通常我可以将这样的链接提供给在服务 (setDataSource) 中运行的 Android 媒体播放器。我确实有一个类似的应用程序可以为 Wuala 媒体数据执行此操作 - 它完全按预期工作。但它不适用于 Google Drive 返回的链接。

player.id = newId;
player.status = PlayerObject.BUFFERING;
player.mediaPlayer.setOnBufferingUpdateListener(this);
player.mediaPlayer.setOnCompletionListener(this);
player.mediaPlayer.setOnErrorListener(this);
player.mediaPlayer.setOnInfoListener(this);
player.mediaPlayer.setOnPreparedListener(this);
player.mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.mediaPlayer.setDataSource(player.playlist.getUrl());
player.mediaPlayer.prepareAsync();

这里是 LogCat:

I/StagefrightPlayer(116): setDataSource('https://docs.google.com/uc?authuser=0&id=0B2hum21gMcbZaTJNMHIrbnJqSUk3aTFYb1pzOStyNjN3Z3ZnPQ&export=download&revision=true')
E/MediaPlayer(23964): error (1, -2147483648)
E/MediaPlayer(23964): Error (1,-2147483648)
E/MediaPlayer(23964): stop called in state 0
E/MediaPlayer(23964): error (-38, 0)
I/StagefrightPlayer(116): setDataSource('https://docs.google.com/uc?authuser=0&id=0B2hum21gMcbZUjlDUkRHV000d1JVZ2xDZVlIK25WY3ZEQzVRPQ&export=download&revision=true')
E/MediaPlayer(23964): error (1, -2147483648)
E/MediaPlayer(23964): stop called in state 0
E/MediaPlayer(23964): error (-38, 0)
W/MediaPlayer(23964): mediaplayer went away with unhandled events
W/MediaPlayer(23964): mediaplayer went away with unhandled events
W/MediaPlayer(23964): mediaplayer went away with unhandled events

知道是什么让这个链接如此特别吗?

非常感谢。

编辑: 失败的链接是公共链接(拥有该链接的人有权访问...)。所以,不需要认证。

【问题讨论】:

  • 我也遇到了同样的问题。你解决了吗?
  • 你解决过这个问题吗?

标签: android media-player google-drive-api


【解决方案1】:

可能是您需要进行身份验证。这可能对您有所帮助:REST API with HTTP Authentication

【讨论】:

  • 感谢您的链接。我忘了提到的是,这是一个公共可用链接(谁拥有该链接可以访问......)。我可以浏览完整的文件夹树。只是我无法将下载链接输入媒体播放器 - 媒体播放器抱怨该链接。
【解决方案2】:

我在 android 2.3 中发现了同样的问题(但在 3.0 之后,不是问题)是在 setDataSource url 链接应该在 http。但谷歌驱动器提供 https 链接。

【讨论】:

  • 这看起来像是一个问题/评论,而不是一个答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-12
  • 1970-01-01
  • 2018-05-12
  • 2017-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多