簡體   English   中英

Android:無法創建MediaPlayer

[英]Android: Unable to create MediaPlayer

我正在嘗試運行一個簡單的測試應用程序以從在線廣播廣播流式播放音樂,但我總是遇到有關MediaPlayer setDataSource()方法的錯誤。這是日志:

08-26 11:33:42.268  17698-17698/com.example.bruno.radioteste D/MainActivity﹕ Attempt to play http://50.7.98.106:8398
08-26 11:33:42.268  17698-17698/com.example.bruno.radioteste E/MediaPlayer﹕ Unable to create media player
08-26 11:33:42.268  17698-17698/com.example.bruno.radioteste W/System.err﹕ java.io.IOException: setDataSource failed.: status=0x80000000
08-26 11:33:42.278  17698-17698/com.example.bruno.radioteste W/System.err﹕ at android.media.MediaPlayer._setDataSource(Native Method)

代碼非常簡單,從我一直在搜索的代碼來看,它應該可以正常工作。布局的xml:

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="BassDrive-http://50.7.98.106:8398"
    android:onClick="play" />

和活動類:

 public class MainActivity extends AppCompatActivity implements MediaPlayer.OnPreparedListener {

private static final String TAG = MainActivity.class.getSimpleName();

private MediaPlayer player;
private boolean isPlaying = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    player = new MediaPlayer();
    player.setOnPreparedListener(this);
    player.setAudioStreamType(AudioManager.STREAM_MUSIC);
}

public void play(View view) {

    if(isPlaying) {
        player.stop();
        isPlaying = false;
    } else {

        try {

            String stationIp = ((Button)view).getText().toString().split("-")[1];
            Log.d(TAG, "Attempt to play " + stationIp);
            player.setDataSource(stationIp);
            player.prepareAsync();
            isPlaying = true;

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

}

@Override
public void onPrepared(MediaPlayer mp) {
    Log.d(TAG, "Trying to start...");
    mp.start();
}

@Override
protected void onStop() {
    super.onStop();

    // clear media player
    player.stop();
    player.release();
    player = null;
}

有兩種可能的情況,

您是否在清單中添加了此權限?

<uses-permission android:name="android.permission.INTERNET" />

如果是,則android無法解碼您的流。 要對此進行測試,您可以嘗試其他一些流。 例如,嘗試Spotify 30秒預覽流http://d318706lgtcm8e.cloudfront.net/mp3-preview/d9d8686acc79916d2db76abdaa2c18a594fed332

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM