Android потоковое радио приложение не работает

Я сделал приложение потокового радио для Android.

Если я установлю в качестве источника данных mp3, приложение будет работать:

mp.setDataSource("http://www.robtowns.com/music/blind_willie.mp3")

Вместо этого, если я установил этот поток радио, URL не работает:

mp.setDataSource("http://62.149.220.142:8000/listen.pls");

или же

mp.setDataSource("http://62.149.220.142:8000/");

Зачем?

Это часть кода:

@Override
public void onClick(View v) {
    try {
        pd = new ProgressDialog(this);
        pd.setMessage("Buffering.....");
        pd.show();
        mp = new MediaPlayer();
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);

    mp.setOnPreparedListener(this);
    mp.setOnErrorListener(this);
    //mp.setDataSource("http://www.robtowns.com/music/blind_willie.mp3");
    //mp.setDataSource("http://62.149.220.142:8000/listen.pls");
    //mp=MediaPlayer.create(getApplicationContext(),Uri.parse("http://62.149.220.142:8000/listen.pls"));

    //sito
    mp.setDataSource("108.163.197.146:8002/");


    mp.prepareAsync();
    mp.setOnCompletionListener(this);
} catch (Exception e) {
    Log.e("StreamAudioDemo", e.getMessage());
}

}

Стефано

1 ответ

Здравствуйте, я пробую это, и это работает для меня:

Шаг 1: я создал файл network_security_config.xml в папке xml.

      <?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>

Шаг 2: и я добавил в манифест в теге приложения:

      android:networkSecurityConfig="@xml/network_security_config"

Шаг 3 Теперь класс Java

      public class AudioPlayer {

    MediaPlayer player;

    public void playAudio() {
        player = new MediaPlayer();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            player.setAudioAttributes(new AudioAttributes.Builder()
                    .setUsage(AudioAttributes.USAGE_MEDIA)
                    .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
                    .setLegacyStreamType(AudioManager.STREAM_MUSIC)
                    .build());
        } else {
            player.setAudioStreamType(AudioManager.STREAM_MUSIC);
        }
        try {
            player.setOnPreparedListener(mp -> {
                mp.start();

            });
            player.setDataSource("http://199.180.75.118/stream");
            player.prepareAsync();


        } catch (Exception e) {
          Log.d("AudioPlayer",e.getMessage());
        }
        // below line is use to display a toast message.
    }
}
Другие вопросы по тегам