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.
}
}