为什么我的Android MediaPlayer需要获得直接从设备播放音乐的权限

时间:2016-05-29 17:57:37

标签: android android-mediaplayer

我正在开发一个Android音乐播放应用程序,可以播放设备本身的音频文件。

应用程序播放音频OK,但我总是在LOGCAT输出中收到此错误

MediaPlayer: java.lang.SecurityException: ConnectivityService: Neither user 10285 nor current process has android.permission.ACCESS_NETWORK_STATE.

我按如下方式配置了MediaPlayer: -

   mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
   mMediaPlayer.setOnPreparedListener(buildOnPreparedListener());
   mMediaPlayer.setOnErrorListener(buildOnErrorListener());

我猜是因为我将AudioStreamType设置为STREAM_MUSIC,我还有其他选择吗?

我不想让我的用户在不需要这样做时允许互联网访问>

我不喜欢LOGCAT中出现的这些错误。

我是否有任何选项可以配置MediaPlayer播放“本地”音频文件而不会产生这些错误?

1 个答案:

答案 0 :(得分:1)

您可以使用铃声和铃声管理器播放本地文件

RingTone ringtone = RingtoneManager.getRingtone(getApplicationContext(), SoundUri);
ringtone.play();

创建MediaPlayer是为了提供音频/视频文件和流的播放,因此他们需要对流的android.permission.ACCESS_NETWORK_STATE权限。