mp.prepare();
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
Android 4.0.3
не играет, есть идеи?
На эмуляторе?
нет, на эмуляторе видео не работает почему то, поэтому отлаживаюсь на железе (в данном примере не работает mp3, ogg тоже пробовал)
Попробуй другой трек для начала. Иногда в кодеках может быть проблема
mp3 и ogg пробовал есть гипотеза что он просто скачать трек не может, но как это проверить.. после prepare() фризит интерфейс и движения больше нет, полагаю до start() не доходит
Попробуй prepareAsync и обвязку колбеков
MediaPlayer mp = new MediaPlayer(); try { mp.setDataSource("https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"); mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { public void onPrepared(MediaPlayer mp) { if (!mp.isPlaying()) { mp.start(); } } }); mp.prepareAsync(); mp.start(); } catch (Exception e) { e.printStackTrace(); } чуда не случилось(
А он эррор колбек?
в логах ошибок нет, мб не туда смотрю? в run: app \ Logcat вкладках пусто
Просмотри логи от медиаплеера. Что он там инитит. По любому должен что-то писать. Ошибку кидать возможно не будет
MediaPlayer mp = new MediaPlayer(); try { mp.setDataSource("https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"); mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { public void onPrepared(MediaPlayer mp) { if (!mp.isPlaying()) { mp.start(); } } }); mp.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { Log.e(getPackageName(), String.format("Error(%s%s)", what, extra)); return true; } }); mp.prepareAsync(); mp.start(); } catch (Exception e) { e.printStackTrace(); } пусто
А на версии, скажем 5й или выше работает?
не работает, в логах нашёл максимум 10-12 23:00:32.406 4225-4225/com.adasm.player E/MediaPlayer: Error (-38,0) 10-12 23:00:32.407 4225-4225/com.adasm.player E/com.adasm.player: Error(-380)
проблема как и предполагал оказалась в https, но как это обойти.. по http играет
Я сразу хотел тебе про это написать но перед этим погуглил, писали что он наконец то научился работать с https поэтому не стал ))
Первое, что в голову пришло, вроде можно было медиаплееру подсовывать okhttp client. И okhttp клиенту разрешить доверять всем сертификатам. Но такое я не пробовал, ещё раз повторюсь
попробовал так, не получилось https://paste.laravel.io/279bb72b-baa9-4b58-9fa3-7aa4d919a63c
Попробуй в 5й строке вернуть new X509Certificate[0] ; ну попробовать скормить okhttp клиент медиаплееру
Обсуждают сегодня