Android平台Unity所有声音从听筒播放

来源:互联网 发布:证件照换装软件 编辑:程序博客网 时间:2024/06/11 09:08
最近遇到一个需求要让所有声音都从听筒播放,查看了Android 的media包后,发现强制转换音频输出方式的方法被隐藏了,只要通过发射去调用Android Native的方法就可以了,下面是代码  

try {  Class<?> audioSystemClass = Class.forName("android.media.AudioSystem");  Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class);  // First 1 == FOR_MEDIA, second 1 == FORCE_SPEAKER. To go back to the default  // behavior, use FORCE_NONE (0).  setForceUse.invoke(null, audioSystemClass.getField("FOR_COMMUNICATION"), audioSystemClass.getField("FORCE_NONE"));        } catch (Exception e) {            Log.e("yes", "setDeviceConnectionState failed: " + e);        }try { if(audioManager != null) { if(audioManager.isSpeakerphoneOn()) { audioManager.setMode(AudioManager.MODE_IN_CALL); audioManager.setSpeakerphoneOn(false); audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL), AudioManager.STREAM_VOICE_CALL); } } Toast.makeText(MainActivity.this,"扬声器关闭",Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); }


0 0
原创粉丝点击