欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

android插上耳机仍用扬声器播放音频

发布时间:2025/3/20 编程问答 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 android插上耳机仍用扬声器播放音频 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

最近遇到一个如何在耳机插入的情况下任然用扬声器播放音频的问题。

用搜索引擎找了一些网上的demo 。发现按照他们的方法成功实现。

最后成功解决了。先说解决办法吧。

问题的关键是某度搜出来的第一个解决方案没有在mainfest中添加如下权限。

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

除了这个权限,我下面的代码基本http://blog.csdn.net/menghnhhuan/article/details/7415843差不多

下面贴出代码

import android.content.Context; import android.media.AudioManager; import android.media.MediaPlayer; import android.util.Log;public class MusicPlay {Context context = null;AudioManager audioManager;MediaPlayer playerSound;Thread playThread;// 播放音频文件,固定使用扬声器播放public MusicPlay(Context context) {this.context = context;audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);audioManager.setMicrophoneMute(false);audioManager.setSpeakerphoneOn(true);// 使用扬声器播放,即使已经插入耳机audioManager.setMode(AudioManager.STREAM_MUSIC);}public void play() {playThread = new Thread(new PlayThread());playThread.run();}class PlayThread implements Runnable {@Overridepublic void run() {//Log.e("zhiyinqing", "执行到了run方法");if (audioManager.isSpeakerphoneOn()) {// Log.e("liuyu","扬声器打开了");} else {audioManager.setSpeakerphoneOn(false);Log.e("liuyu", "扬声器关闭了");if (audioManager.isSpeakerphoneOn()) {// Log.e("liuyu","扬声器打开了");} else {// Log.e("liuyu","扬声器还是没打开");}}playerSound = MediaPlayer.create(context, R.raw.abc);playerSound.start();}}}

如果有帮到您,打个赏呗

总结

以上是生活随笔为你收集整理的android插上耳机仍用扬声器播放音频的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。