通过阅读本文,您可以了解RTS Web SDK各版本的接口详情。

V2.0.0

  • 实例化
    var aliRts = new AliRTS.createClient();
  • 检测浏览器是否可用
    /**
     * isSupport检测是否可用
     * @param {Object} supportInfo 检测信息
     * @param {Boolean} supportInfo.isReceiveVideo 是否拉视频流
     * @return {Promise}
     */
    aliRts.isSupport(supportInfo).then(re=> {
      // 可用
    }).catch(err=> {
      // 不可用
      console.log(`not support errorCode: ${err.errorCode}`);
      console.log(`not support message: ${err.message}`);
    })
  • RTS开始拉流
    /**
     * rts开始拉流接口
     * @param {String} pullStreamUrl 拉流地址,在地址后添加@subaudio=no或者@subvideo=no来表示不订阅音频流或视频流
     * @return {Promise}
     */
    aliRts.subscribe(pullStreamUrl).then((remoteStream) => {
      // mediaElement是媒体标签audio或video
      remoteStream.play(mediaElement);
    }).catch((err) => {
      // 订阅失败
    })
  • RTS停止播放
    aliRts.unsubscribe();
  • 静音
    remoteStream.muted = true;
  • 获取本地流
    /**
     * 获取本地流localStream
     */
    AliRTS.createStream({
      audio: true,
      video: true,
      screen: false,
    }).then((localStream) => {
      // 预览推流内容,mediaElement是媒体标签audio或video
      localStream.play(mediaElement);
    }).catch((err) => {
      // 创建本地流失败
    })
  • 推流
    /**
     * 开始推流
     */
    aliRts.publish(pushUrl, localStream)).then(() => {
      // 推流成功
    }).catch((err) => {
      // 推流失败
    })
  • 停止推流
    aliRts.unpublish();
  • 回调监听
    /*
     * 在onError中获取到错误码10201时,此时网页的音频是静音的,
     * 需要用户在网页上手动触发事件(必须有用户交互,不能直接通过代码控制)
     * 调用remoteStream.muted = false取消静音
     */
    aliRts.on("onError", (err)=> {
      console.log(`errorCode: ${err.errorCode}`);
      console.log(`message: ${err.message}`);
    })
    
    const PLAY_EVENT = {
      CANPLAY: "canplay",
      WAITING: "waiting",
      PLAYING: "playing"
    }
    
    aliRts.on('onPlayEvent', (play)=>{
      if(play.event === PLAY_EVENT.CANPLAY){
        //拉流可以播放
      }else if(play.event === PLAY_EVENT.WAITING){
        //拉流卡顿等待缓冲中 (仅Chrome)
      }else if(play.event === PLAY_EVENT.PLAYING){
        //拉流卡顿结束恢复播放 (仅Chrome)
      }
    })

旧版本(V1.1.0~V1.2.4)

  • 实例化
    var aliRts = new AliRTS();
  • 检测浏览器是否可用
    //调用此接口时必须传递参数,否则调用时会出现报错
    /** 
     * isSupport检测是否可用 
     * @param {Object} supportInfo 检测信息 
     * @param {Boolean} supportInfo.isReceiveVideo 是否拉视频流 
     * @return {Promise}  
     */ 
    aliRts.isSupport(supportInfo).then(re=> { 
        //可用 
    }).catch(err=> { 
      //不可用 
      console.log(`not support errorCode: ${err.errorCode}`); 
      console.log(`not support message: ${err.message}`); 
    })
  • RTS开始拉流
    /** 
     * rts开始拉流接口 
     * @param {String} pullStreamUrl 拉流地址 
     * @param {HTMLMediaElement} mediaElement 播放视频的video标签 
     * @return {Promise}  
     */ 
    aliRts.startLiveStream(pullStreamUrl, mediaElement);
  • RTS停止播放
    aliRts.stopLiveStream();
  • 静音
    /** 
     * 拉流静音接口 
     * @param {Boolean} muted 是否开启静音 
     */ 
    aliRts.muteLiveStream(muted);
  • 回调监听
    /*
     * 在onError中获取到错误码10201时,此时网页的音频是静音的,
     * 需要用户在网页上手动触发事件(必须有用户交互,不能直接通过代码控制)
     * 调用aliRts.muteLiveStream(false) 来取消静音
     */
    aliRts.on("onError", (err)=> {
      console.log(`errorCode: ${err.errorCode}`);
      console.log(`message: ${err.message}`);
    })
    
    const PLAY_EVENT = {
      CANPLAY: "canplay",
      WAITING: "waiting",
      PLAYING: "playing"
    }
    
    aliRts.on('onPlayEvent', (play)=>{
      if(play.event === PLAY_EVENT.CANPLAY){
        //拉流可以播放
      }else if(play.event === PLAY_EVENT.WAITING){
        //拉流卡顿等待缓冲中 (仅Chrome)
      }else if(play.event === PLAY_EVENT.PLAYING){
        //拉流卡顿结束恢复播放 (仅Chrome)
      }
    })