Медиаплеер больше не работает на уровне API 29 - PullRequest
0 голосов
/ 06 мая 2020

я использовал простые примеры потоковой передачи медиаплеера с 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();
    }

}

1 Ответ

0 голосов
/ 06 мая 2020

Посмотрите, отключена ли поддержка HTTP-трафика в открытом виде c. Он отключен по умолчанию в Android 28 и выше.

См. Эту ссылку

...