Cordova track.stop() 未释放“通话中”音量模式

Posted

技术标签:

【中文标题】Cordova track.stop() 未释放“通话中”音量模式【英文标题】:Cordova track.stop() not releasing "In-Call" volume mode 【发布时间】:2018-08-21 15:17:02 【问题描述】:

我在 android 上遇到声音输出问题(Galaxy S7 edge + 人行横道):

在我尝试改变声音之前,我可以设置“铃声”音量:

然后我开始使用 webrtc 音频通话

const constraints = 
  video: false,
  audio: true,
;

navigator.mediaDevices.getUserMedia(constraints)
                      .then(stream => this.stream = stream)

我可以通过按音量键来改变通话音量:

然后我通过调用来结束它

this.stream.getTracks().forEach((track) => 
   track.stop();
);

但声音仍然是“In-Call”:

当我关闭应用程序时,我可以再次更改铃声...

怎么了?

【问题讨论】:

我遇到了同样的问题。你解决了吗? 我们认为我们有一个修复,但它又来了。安静诡异。您应该尝试使用音频模式(在本机 Java 代码中)... 禁用 echoCancellation 时似乎不会发生这种情况:navigator.mediaDevices.getUserMedia( audio: echoCancellation: false ); 【参考方案1】:

您的“结束”代码没有问题。 只需确保navigator.mediaDevices.getUserMedia 仅调用一次或所有曲目在再次调用之前停止

【讨论】:

以上是关于Cordova track.stop() 未释放“通话中”音量模式的主要内容,如果未能解决你的问题,请参考以下文章

Cordova-res 未安装在 ionic cordova

PhoneGap 错误 - “未捕获的 ReferenceError:cordova 未定义”

未获得有关 cordova 推送通知的完整信息 (cordova-plugin-firebasex)

cordova 3.0:Android:未定义连接

未找到 Cordova_Plugins.js

添加新插件后,cordova_plugins.js 未更新