Ich habe eine AudioTrack
Streaming über Kopfhörer. Ich muss ein SoundPool
nur an eingebaute Lautsprecher senden, ohne die AudioTrack
Wiedergabe über die Kopfhörer zu unterbrechen. Irgendwelche Gangster?Wiedergabe von Ton über Lautsprecher während der Wiedergabe von Musik über Kopfhörer
Antwort
Viele Android-Geräte verwenden einen einzigen Ausgabe-Thread in der AudioFlinger/Audio-HAL für alle lokalen Wiedergabe (Kopfhörer, Lautsprecher, kabelgebundenes Headset/Kopfhörer), so dass verschiedene Routing von zwei Tracks gleichzeitig unmöglich (weshalb auf vielen Geräten die Medien Streams werden zwangsweise stummgeschaltet, wenn eine Benachrichtigung abgespielt wird und Sie ein verkabeltes Headset angeschlossen haben, da Sie sonst die Musik im Lautsprecher hören würden, während die Benachrichtigung abgespielt wird.
Auf einigen Geräten könnte es möglich sein, zu tun, was Sie suchen, wenn Sie verwalten ein setForceUse(FOR_MEDIA, FORCE_SPEAKER)
zu tun und benutzen Sie den MUSIC
Stream-Typ für das Material, das Sie in den Lautsprecher wiedergegeben werden soll, und der VOICE_CALL
Stream-Typ für die Dinge, die Sie im kabelgebundenen Headset spielen möchten.
Ich bin mir nicht sicher, ob es eine Möglichkeit für eine Anwendung gibt, diesen Aufruf durchzuführen. Vielleicht können Sie an der handleMessage
Methode der AudioService
Klasse durch Reflexion und senden Sie ihm eine MSG_SET_FORCE_USE
Nachricht .. Ich habe es nie selbst versucht, so dass es kläglich scheitern könnte.
EDIT: Ich habe getestet nun den setForceUse Weg MEDIA Ströme an die Lautsprecher zu zwingen, während ein Kabel-Headset auf einem Gerät angebracht ist, und es funktioniert (obwohl ich nicht garantieren kann, dass es über arbeiten alle Geräte). Die Implementierung unterscheidet sich geringfügig von dem, was ich oben beschrieben habe. Siehe meine Antwort auf how to turn speaker on/off programatically in android 4.0 für den Code, den ich verwendet habe.
Mit STREAM_RING wird der Sound zum Lautsprecher umgeleitet, auch wenn die Kopfhörer angeschlossen sind. Der Sound, der über Kopfhörer (AudioTrack) wiedergegeben wird, wird jedoch angehalten, bis dieser STREAM_RING-Vorgang abgeschlossen ist, und wird dann fortgesetzt. Meine Priorität ist das Abspielen des Kopfhörer-Streams ohne Unterbrechung. –
Ja, STREAM_RING folgt der SONIFICATION-Routing-Strategie, die das Verhalten auslösen würde, das ich im ersten Abschnitt meiner Antwort beschrieben habe. Ich habe überprüft, dass ein MUSIC-Stream, der zu Lautsprecher + VOICE_CALL-Stream in verkabelten Headsets gezwungen wird, ordnungsgemäß auf einem XPeria P funktioniert, aber ich habe es nicht auf anderen Geräten getestet. – Michael
Mike, es tut mir leid, dass ich dich zu hart pushen muss, aber ich habe es auf S2 und HTC One X getestet. Beide pausieren den Ton über Kopfhörer. Meins ist ein Signal, das bei fortschreitender Unterbrechung den Arbeitsprozess des Systems durchbrechen wird. –
- 1. Erzwinge Audiodatei-Wiedergabe über iPhone Lautsprecher mit Swift
- 2. Wiedergabe von Live-Sound von iOS-App zu Bluetooth-Lautsprecher
- 3. Wiedergabe von .wav-Dateien - Android
- 4. Geterror 404 während der Wiedergabe
- 5. Dauer während der Wiedergabe von PlaylistItems zurückgegeben?
- 6. Wiedergabe von Audiodatei mit Golang
- 7. iPhone AudioServicesPlaySystemSound: Route über Kopfhörer?
- 8. Wiedergabe von AVAudioPCMBuffer mit AVAudioEngine
- 9. Wiedergabe von Doppel-Array
- 10. Ausgabe über Lautsprecher auch mit eingestecktem Kopfhörer erzeugen?
- 11. Wiedergabe von Mac-Tastatur-Wiedergabe/-Pause-Ereignissen
- 12. Wiedergabe von Audiodateien mit Redux
- 13. Arraylist mit Wiedergabe Wiedergabe
- 14. Wiedergabe von Audiodateien während der Videoaufnahme in iOS
- 15. AVAudioPlayer Zurücksetzen der aktuellen Wiedergabe von Sound und Wiedergabe von Anfang an
- 16. Ändern der Eigenschaften von Samples während der Wiedergabe
- 17. Ermitteln der Herkunft von Audio während der Wiedergabe
- 18. Audio-Wiedergabe
- 19. Wiedergabe von .wav-Datei von Ressource
- 20. Wiedergabe von Sound in C++
- 21. Wiedergabe von Audiodateien mit J2ME
- 22. die Wiedergabe von Video
- 23. Tomcat: Wiedergabe von Audio
- 24. Wiedergabe von Audio mit HTML5
- 25. ios audio unit remoteIO Wiedergabe während der Aufnahme
- 26. Kann ich einen Ton über einen nicht standardmäßigen Lautsprecher mit Python unter Windows abspielen?
- 27. URL-Umleitung während der Wiedergabe in loadrunner
- 28. MPMoviePlayerController Wiedergabe Problem
- 29. Forcing Sound-Ausgabe über Lautsprecher in Android
- 30. Wiedergabe (und Wiedergabe) eines Sounds auf Safari Mobile
so der SoundPool ist getrennt von der AudioTrack richtig? – Soham
AudioManager mAudioMgr = (AudioManager) getSystemService (Kontext.AUDIO_SERVICE); mAudioMgr.setSpeakerphoneOn (true); mAudioMgr.setMode (AudioManager.MODE_IN_COMMUNICATION); –