b54ba10c69
Root cause (WebKit source MediaSessionManagerCocoa.mm + Apple DTS, confirmed by telemetry): WKWebView's WebRTC re-pins the session to mode .videoChat while capture is active, and .videoChat auto-implies .defaultToSpeaker. So override(.none) reverts to the mode default = LOUDSPEAKER, and .none alone can never reach the earpiece once WebKit flips the mode. Our first override won only because .voiceChat was still active. Fix: for earpiece, setMode(.voiceChat) (its default route IS the receiver) before override(.none) in both setSpeaker and the debounced route-change re-assert. Add an accessory guard so a connected BT/wired headset isn't yanked to the built-in receiver. Reconcile the launch patch: drop .defaultToSpeaker from inject-audio.js so it stops contradicting the plugin. native marker 1.0.4-mode. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
27 lines
517 B
JSON
27 lines
517 B
JSON
{
|
|
"name": "audio-route",
|
|
"version": "1.0.4",
|
|
"description": "iOS earpiece/speaker audio route toggle for Biz Connect",
|
|
"main": "dist/plugin.cjs.js",
|
|
"module": "dist/esm/index.js",
|
|
"types": "dist/esm/index.d.ts",
|
|
"author": "BizGaze",
|
|
"license": "MIT",
|
|
"files": [
|
|
"dist/",
|
|
"ios/",
|
|
"AudioRoute.podspec"
|
|
],
|
|
"capacitor": {
|
|
"ios": {
|
|
"src": "ios"
|
|
}
|
|
},
|
|
"devDependencies": {
|
|
"@capacitor/core": "^7.0.0"
|
|
},
|
|
"peerDependencies": {
|
|
"@capacitor/core": "^7.0.0"
|
|
}
|
|
}
|