Android 通过插入耳机的扬声器播放音频
我想通过带有插入式耳机的扬声器播放音频文件 我尝试了以下方法: MainActivity.java:Android 通过插入耳机的扬声器播放音频,android,audio,android-mediaplayer,Android,Audio,Android Mediaplayer,我想通过带有插入式耳机的扬声器播放音频文件 我尝试了以下方法: MainActivity.java: AudioManager audioManager = (AudioManager)mainActivity .getSystemService(Context.AUDIO_SERVICE); audioManager.setMode(AudioManager.STREAM_MUSIC); audioManager.setSpeakerphoneOn(true); MediaPlaye
AudioManager audioManager = (AudioManager)mainActivity
.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.STREAM_MUSIC);
audioManager.setSpeakerphoneOn(true);
MediaPlayer mp = MediaPlayer.create(mainActivity, R.raw.chime);
mp.setAudioStreamType(AudioManager.STREAM_RING);
mp.start();
舱单:
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
但是我越来越
java.lang.IllegalStateException
有什么办法可以解决这个问题吗?我将提供一个完整的代码片段(在Android 24上测试),我必须从多个提示聚合到解决方案:
public class AudioClass
{
AudioManager audioManager;
Activity activity;
public AudioClass(Activity activity)
{
this.activity = activity;
//NEEDS TO BE DONE BEFORE PLAYING AUDIO!
audioManager = (AudioManager)
activity.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setSpeakerphoneOn(true);
}
public void playAudio() {
//CAN BE CALLED FROM ANYWHERE AFTER AudioClass IS INSTANTIATED
MediaPlayer mp = MediaPlayer.create(activity, R.raw.audio_file_name);
mp.setAudioStreamType(AudioManager.MODE_IN_COMMUNICATION);
mp.start();
}
}
需要在清单中设置修改音频设置的权限:
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
非常感谢@greybearedgeek的可能重复代码,我在你建议的帖子中尝试了该代码,但仍然无法使用。有没有其他办法通过扬声器播放音频?
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />