我已经为Google云端硬盘开发了两个Android应用。用于图像数据的图库应用程序运行完美。我的第二个应用程序是Musicplayer。在这里,我确实对Google云端硬盘提供的下载链接存在一些问题。一个例子:
这是Google云端硬盘为MP3文件提供的下载链接:
https://docs.google.com/uc?authuser=0&id=0B2hum21gMcbZaTJNMHIrbnJqSUk3aTFYb1pzOStyNjN3Z3ZnPQ&export=download&revision=true
在浏览器中使用此链接时,将下载文件。
通常,我可以将这样的链接输入运行在Service(setDataSource)中的Android Mediaplayer中。我确实有一个类似的应用程序,可以对Wuala媒体数据执行此操作-在那里,它的工作原理完全符合预期。但不适用于Google云端硬盘返回的链接。
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
知道什么使此链接如此特别吗?
提前谢谢了。
编辑:失败的链接是公共链接(谁的链接可以访问...)。因此,无需进行身份验证。
最佳答案
可能是您需要身份验证。这可能对您有帮助:REST API with HTTP Authentication。