播放SoundCloud Track

use*_*413 1 android soundcloud

我可以在Android应用程序中播放SoundCloud的曲目吗?我正在尝试此代码,但它不起作用:

String res = "https://api.soundcloud.com/tracks/84973999/stream?client_id=cd9d2e5604410d714e32642a4ec0eed4";

MediaPlayer mp = new MediaPlayer();
try {
        mp.setDataSource(res);
        mp.prepare();
        mp.start();
    } catch (IOException e) {

    }
Run Code Online (Sandbox Code Playgroud)

Joc*_*aar 9

我试图从Android播放Soundcloud流时遇到同样的问题.

为我修复的是将以下权限添加到我的AndroidManifest.xml中

<permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.INTERNET" />
<permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

对我来说,这是一个facepalm时刻.这是我的媒体播放器实现.

对于我的媒体播放器,我有一个实现的类

MediaPlayer.OnPreparedListener
Run Code Online (Sandbox Code Playgroud)

在该类中,我使用以下代码来设置MediaPlayer.

 mMediaPlayer = new MediaPlayer();
 mMediaPlayer.setOnPreparedListener(this);
 mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try{
        mMediaPlayer.setDataSource("http://api.soundcloud.com/tracks/7399237/stream?client_id=XXX");
    }catch (IllegalArgumentException e){
        e.printStackTrace();

    } catch (IOException e) {
        e.printStackTrace();

    }
    mMediaPlayer.prepareAsync();
Run Code Online (Sandbox Code Playgroud)

在我的onPrepared回调中,我只是开始播放流.

@Override
public void onPrepared(MediaPlayer mediaPlayer) {
    mMediaPlayer.start();
}
Run Code Online (Sandbox Code Playgroud)