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

最近遇到一个需求要让所有声音都从听筒播放,查看了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();
					 }


你可能感兴趣的:(Unity使用技巧)