1

Google ドライブ用の 2 つの Android アプリを開発しました。画像データのギャラリー アプリは完璧に機能しています。私の 2 番目のアプリは Musicplayer です。ここで、Google ドライブが提供するダウンロード リンクにいくつか問題があります。例:

これは、Google ドライブが提供する MP3 ファイルのダウンロード リンクです。

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

このリンクをブラウザで使用すると、ファイルがダウンロードされます。

通常、このようなリンクをサービス (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

このリンクが特別な理由は何ですか?

よろしくお願いします。

編集:失敗したリンクは公開リンクです(リンクを持っている人はアクセスできます...)。したがって、認証する必要はありません。

4

2 に答える 2

0

私はAndroid 2.3で同じ問題を発見しました(ただし、3.0以降は問題ではありません)setDataSource urlリンクはhttpにある必要があります。ただし、Google ドライブは https リンクを提供します。

于 2014-10-20T17:06:11.473 に答える