MediaPlayer.prepareAsync()与Nougat花费很长时间

时间:2019-07-21 18:28:47

标签: android android-mediaplayer

当从网络流音频文件时,

mediaPlayer.prepareAsync()需要很长时间才能调用onMediaPrepared()方法。仅在Android Nougat设备上会发生这种情况。至于其他版本,它可以正常响应。

这是我的代码:

mediaPlayer = new MediaPlayer();

mediaPlayer.setOnCompletionListener(this);
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.setOnErrorListener(this);
mediaPlayer.setOnBufferingUpdateListener(this);

mediaPlayer.reset();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      mediaPlayer.setAudioAttributes(new AudioAttributes.Builder().setLegacyStreamType(AudioManager.STREAM_MUSIC).build());
   } else {
       mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
   }
   try {
       mediaPlayer.setDataSource(uri);
   } catch (IOException e) {
       e.printStackTrace();
   }
mediaPlayer.prepareAsync();

setAudioAttributes是否有问题?我尝试了以下方法,但是没有运气。

        mediaPlayer.setAudioAttributes(new AudioAttributes.Builder()
                .setUsage(AudioAttributes.USAGE_MEDIA)
                .setLegacyStreamType(AudioManager.STREAM_MUSIC)
                .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
                .build());

感谢您的时间。

0 个答案:

没有答案