0

我在快速服务器应用程序中使用 mediasoap 和 typescript,这Broadcast是我定义的类型,它具有类型属性Router(在 mediasoup 模块中定义的类),问题是:
在创建广播实例时,没有创建路由器正确,这就是为什么:

  1. 我无法在控制台中记录创建的对象(console.log输出[object Object]:)
  2. 路由器对象中有一个数组作为第三级嵌套属性,称为codecs,这非常重要,并且在创建时不会设置。

但是当我单独创建路由器对象时,它工作得很好!即使我为路由器创建了一个空值的广播对象,然后使用单独创建的正常工作的路由器对象设置路由器属性,它再次停止正常运行

广播类:

import { types } from "mediasoup";

export class Broadcast {
  Id: string;
  Title: string;
  Router: types.Router;
  Streamer: Streamer;
  Participants: Array<Participant>;
}

这是一个演示问题的场景

广播服务类:

export class BroadcastService {

  _streamerService: StreamerService;

  constructor() {
    this._streamerService = new StreamerService();
  }
  
  async CreateBroadcast(title: string, streamer: Streamer): Promise<Broadcast> {

    var broadcast: Broadcast = {
      Title: title,
      Id: uuidv4(),
      Streamer: this._streamerService.CreateStreamer(streamer.Id),
      Router: null,
      Participants: new Array<Participant>()
    };
    return broadcast;
  }
}

分离实例化:

var broadcast = await broadcastService.CreateBroadcast();
console.log(broadcast.Router); // null due to Broadcast constructor
var mediaCodecs = config.router.mediaCodecs;
var router = await this.Worker.createRouter({ mediaCodecs });
console.log(router.rtpCapabilities.codecs); // logs the correct codecs
broadcast.Router = router;
console.log(broadcast.Router.rtpCapabilities.codecs); // result: [object Object],[object Object],[object Object]
4

0 回答 0