实时音视频
  • iOS
  • Android
  • macOS
  • Windows
  • HarmonyOS
  • Linux
  • Web : JavaScript
  • 小程序
  • Flutter
  • Electron
  • Unreal Engine
  • Unity3D
  • uni-app
  • React Native
  • Cocos Creator
  • 产品简介
  • 下载
  • 体验 App
  • 快速开始
    • 跑通示例源码
    • 集成 SDK
    • 实现视频通话
    • 场景化音视频配置
  • 通信能力
  • 房间能力
  • 音频能力
  • 视频能力
  • 直播能力
  • 其他能力
  • 播放器插件
  • 最佳实践
  • 客户端 API
  • 服务端 API
  • 常见错误码
  • 常见问题
  • 文档中心
  • 实时音视频
  • 音频能力
  • 自定义音频采集

自定义音频采集

更新时间:2024-02-27 16:59

功能简介

ZEGO 提供自定义音频采集功能,一般应用于需要从现有音频流、音频文件中获得采集后输入,交给 SDK 传输的场景。

示例源码下载

请参考 下载示例源码 获取源码。

相关源码请查看 “src/Examples/AdvancedAudioProcessing/CustomAudioCaptureAndRendering” 目录下的文件。

前提条件

在实现自定义音频采集之前,请确保:

使用步骤

  • 暂不支持在 Safari 浏览器上进行第三方音视频推拉流。
  • 在线资源地址可能由于跨域问题而无法获取,需要允许跨域。
  • 资源文件较大时,可能加载时间较长,需要在加载完成后,再获取音频流。
  • 自 Google Chrome 86 开始,推第三方音频流时,如果本地音频设置静音,拉流端将无法听到对应的声音。

设置第三方媒体流

调用 createZegoStream 接口创建第三方媒体流,再调用 startPublishingStream 接口推流。

// 开始预览(渲染)
previewVideo.srcObject = mediaStream;
// 采集 
const stream = await zg.createZegoStream({
    custom: {
        audio: {
            source: mediaStream
        }
    }
})
// 推流
zg.startPublishingStream(idName, stream);

设置第三方音频

调用 createZegoStream 接口创建第三方音频,再调用 startPublishingStream 接口推流。

source 为 <audio> 对象时,将其指定的音频源作为预览。

// 开始渲染
<audio id="customAudio" crossorigin="anonymous" loop autoplay playsinline  controls  src="xxxx" />

// 采集:localAudio 为 <audio> 对象
const localAudio = document.querySelector("#customAudio")
const stream = await zg.createZegoStream({
    custom: {
        audio: {
            source: localAudio
        }
    }
})
// 推流
zg.startPublishingStream(idName, stream);
本篇目录