3
오디오 잭을 연결 한 상태에서 오디오 파일을 재생하고 싶습니다 (헤드폰 만 필요하지 않음).Android - 기기를 오디오 잭에 연결했을 때 소리가 나기
도움이된다면 Android 버전 4.3 이상에만 관심이 있으며 필요한 경우 전화를 기꺼이 받겠습니다. 여기
내가 지금까지 시도한 것입니다 :
해킹의 일종이지만 작동하지 않습니다.
try { Class audioSystemClass = Class.forName("android.media.AudioSystem"); Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class); setForceUse.invoke(null, 1, 1); MediaPlayer mp = MediaPlayer.create(this, R.raw.bad); mp.start(); } catch (ClassNotFoundException e) { Log.d("mediaException", "class", e); } catch (NoSuchMethodException e) { Log.d("mediaException", "method", e); } catch (IllegalAccessException e) { Log.d("mediaException", "access", e); } catch (InvocationTargetException e) { Log.d("mediaException", "invocation", e); }
- 는 여기에 몇 가지 스레드에서이 발견뿐만 아니라 작동하지 않습니다 :
AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE); audioManager.setMode(AudioManager.MODE_NORMAL); audioManager.setSpeakerphoneOn(true); MediaPlayer mp = MediaPlayer.create(this, R.raw.bad); mp.start();
나는 가능한 경로를 얻기 위해 노력 MediaRouter 클래스를 사용. 그러나 오디오 잭에 플러그가 꽂혀있을 때만 사용할 수있는 경로는 "헤드폰"입니다. 이 작업을 수행 할 수있는 방법을
MediaRouter router = (MediaRouter) this.getSystemService(Context.MEDIA_ROUTER_SERVICE); for (int i = 0; i < router.getRouteCount(); i++) { Log.d("playSound", router.getRouteAt(i).toString()); }
정확히 작동하지 않는 방법은 무엇입니까? – ozbek
오디오 잭이 꽂혀있는 동안 스피커폰에서 오디오를 재생하지 않습니다. 그것이 내가하려는 일입니다. – Koc
정상적인 동작이 아니겠습니까? – ozbek