我在尝试从 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" />
对我来说,这是一个面对面的时刻。这是我的媒体播放器实现。
对于我的媒体播放器,我有一个实现的类
MediaPlayer.OnPreparedListener
在该类中,我使用以下代码来设置 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();
在我的onPrepared
回调中,我只是开始播放流。
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mMediaPlayer.start();
}