您的位置:首页 > 移动开发 > Unity3D

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

2015-12-09 22:34 429 查看
最近遇到一个需求要让所有声音都从听筒播放,查看了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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息