Я создаю приложение для вызова, в котором пользователи могут или не могут использовать наушники / гарнитуру. При входящем видеовызове я использую response-native-incall-manager , чтобы включить / разрешить динамик телефона. Метод basi c InCallManager.start({ media: 'video' });
работает и позволяет обнаруживать новое подключаемое аудиоустройство, такое как наушники, и, если это произойдет, подключенные наушники и mi c работают должным образом.
проблема возникает в том случае, если наушники уже подключены к устройству до начала вызова, поскольку в это время вызывается метод InCallManager.setSpeakerphoneOn(true);
. InCallManager.start({ media: 'video' });
не учитывает устройства, уже подключенные, и наушники не работают, обычный динамик работает, даже если наушники подключены.
response-native-incall-manager рекомендует использовать DeviceEventEmitter
от реактивной системы для обнаружения собственных событий, таких как изменения в подключенных аудиоустройствах, но этот модуль устарел .
Здесь рекомендуется использовать NativeEventEmitter
, но это кажется очень сложным и, по-видимому, требует написания и использования собственных модулей Java (Android) вместе с ним.
Как я могу обнаружить изменения в подключенных аудиоустройствах в Android в React Native?