я использовал простые примеры потоковой передачи медиаплеера с http-сервера, на котором размещен mp3-файл
, и он работает безупречно (то есть на уровне API 23), когда я пробую тот же код на уровне API 29
он больше не работает и выдает следующий код ошибки:
2020-05-06 04:02:47.899 6926-6953/com.example.alarmmanager E/MediaPlayerNative: error (1, -2147483648)
2020-05-06 04:02:47.900 6926-6926/com.example.alarmmanager E/MediaPlayer: Error (1,-2147483648)
я везде искал значение кода ошибки или как заставить это работать на уровне API 29 и выше моего кода :
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button play = (Button) findViewById(R.id.btn_play);
final Button stop = (Button) findViewById(R.id.btn_stop);
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaplayerhandler("start");
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaplayerhandler("pause");
}
});
}
public void mediaplayerhandler(String status){
final MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
String url = "http://server.com/song.mp3"; // your URL here
try {
mediaPlayer.setDataSource(url);
} catch (IOException e) {
e.printStackTrace();
}
try {
mediaPlayer.prepare(); // might take long! (for buffering, etc)
} catch (IOException e) {
e.printStackTrace();
}
if(status.equals("pause")){
mediaPlayer.pause();
}
else if(status.equals("start")){
mediaPlayer.start();
}
}