【发布时间】:2021-12-04 03:53:39
【问题描述】:
我已经使用 Agora Javascript SDK 4 在我的一个站点中实现了音频通话功能,并面临本地用户语音无法流式传输到远程用户的问题,当我使用浏览器控制台禁用和启用麦克风时,它可以工作,但我没有不知道为什么会这样。这是我使用的 4.6.3 及以下 CDN 的代码。
CDN:
<script src="https://download.agora.io/sdk/release/AgoraRTC_N-4.6.3.js"></script>
var rtc = {
client: null,
localAudioTrack: null,
};
let searchParams = new URLSearchParams(window.location.search)
let channel = searchParams.get('cid')
var options = {
appId: "<appId>",
channel: channel,
token: null,
};
async function startBasicCall() {
rtc.client = AgoraRTC.createClient({ mode: "rtc", codec: "vp8" });
const uid = await rtc.client.join(options.appId, options.channel, options.token, null);
rtc.localAudioTrack = await AgoraRTC.createMicrophoneAudioTrack();
rtc.localAudioTrack.setEnabled(true);
await rtc.client.publish([rtc.localAudioTrack]);
rtc.client.on("user-published", async (user, mediaType) => {
await rtc.client.subscribe(user, mediaType);
if (mediaType === "audio") {
const remoteAudioTrack = user.audioTrack;
remoteAudioTrack.play();
}
});
rtc.client.on("user-unpublished", user => {
const playerContainer = document.getElementById(user.uid);
playerContainer.remove();
});
}
async function leaveCall() {
rtc.localAudioTrack.close();
await rtc.client.leave();
}
if(channel != "" && channel != null){
startBasicCall();
}
我有一个将从 URL 收集的动态频道名称。 我有 2 个用户 用户A:呼叫用户B 用户 B:B 能够听到 A 的声音,但 B 用户的声音没有流到 A,所以 A 什么也听不到
但是当我在用户 A 的浏览器控制台上运行以下代码时,两个用户都可以听到彼此的声音 rtc.localAudioTrack.setEnabled(false); //这是为了静音 rtc.localAudioTrack.setEnabled(true); // 这是为了取消静音
仅供参考:我在两端都使用了相同的代码。
【问题讨论】:
-
当用户加入时听不见,日志上是否有错误?
-
不,完全没有错误
标签: javascript agora.io agora-web-sdk-ng