Android MediaPlayer – 如何在STREAM_ALARM中播放?

前端之家收集整理的这篇文章主要介绍了Android MediaPlayer – 如何在STREAM_ALARM中播放?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经尝试使用以下代码在我的应用程序中设置媒体播放器的音频流,但是当我这样做时,我在模拟器中听不到声音.如果我没有为播放器设置流,则音频播放正常.我确定我使用这个错误,但不能锻炼如何,任何帮助?
MediaPlayer player = MediaPlayer.create(getApplicationContext(),R.raw.test_audio);

AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUdio_SERVICE);
audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM,audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM),AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
player.setAudioStreamType(AudioManager.STREAM_ALARM);
player.start();

注意:我已将MODIFY_AUdio_SETTINGS权限添加到我的清单.

谢谢!

解决方法

我不知道为什么会发生这种情况,但是下面的代码可以工作.您应该通过setDataSource方法而不是create方法设置datasource.

代码工作.

MediaPlayer mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_ALARM);
mp.setDataSource(this,Uri.parse("android.resource://PACKAGE_NAME/"+R.raw.soundfile));
mp.prepare();
mp.start();

代码不工作.

MediaPlayer mp = MediaPlayer.create(this,R.raw.soundfile);
mp.setAudioStreamType(AudioManager.STREAM_ALARM);
mp.prepare();
mp.start();

猜你在找的Android相关文章