Как реализовать 17 хоста с агора io во флаттере?

Я пробовал быстрый старт агоры флаттер, и это действительно хорошо.

Но Агора сказала, что на канале может быть 17 хостов. как это реализовать лучшая практика?

Вот макет из образца:

Widget _viewRows() {
final views = _getRenderViews();
switch (views.length) {
  case 1:
    return Container(
        child: Column(
      children: <Widget>[_videoView(views[0])],
    ));
  case 2:
    return Container(
        child: Column(
      children: <Widget>[
        _expandedVideoRow([views[0]]),
        _expandedVideoRow([views[1]])
      ],
    ));
  case 3:
    return Container(
        child: Column(
      children: <Widget>[
        _expandedVideoRow(views.sublist(0, 2)),
        _expandedVideoRow(views.sublist(2, 3))
      ],
    ));
  case 4:
    return Container(
        child: Column(
      children: <Widget>[
        _expandedVideoRow(views.sublist(0, 2)),
        _expandedVideoRow(views.sublist(2, 4))
      ],
    ));
  default:
}
return Container();

}

Я хотел бы добавить еще 13 просмотров, чтобы оптимизировать возможности видеоконференций с агоры ... заранее спасибо!


person Ryan Akbar Firmansyah    schedule 04.04.2020    source источник


Ответы (1)


Agora video sdk поддерживает до 7 человек одновременно (поддержка видео до 25 человек находится в стадии разработки).

А если вы хотите добавить в свой поток более 4 человек, вы можете просто расширить корпус переключателя, например

case 5:
return Container(
    child: Column(
  children: <Widget>[
    _expandedVideoRow(views.sublist(0, 2)),
    _expandedVideoRow(views.sublist(2, 4)),
    _expandedVideoRow(views.sublist(4, 5))
  ],
));
case 6:
return Container(
    child: Column(
  children: <Widget>[
    _expandedVideoRow(views.sublist(0, 2)),
    _expandedVideoRow(views.sublist(2, 4)),
    _expandedVideoRow(views.sublist(4, 6))
  ],
));
case 7:
return Container(
    child: Column(
  children: <Widget>[
    _expandedVideoRow(views.sublist(0, 2)),
    _expandedVideoRow(views.sublist(2, 4)),
    _expandedVideoRow(views.sublist(4, 6)),
    _expandedVideoRow(views.sublist(6, 7)),
  ],
));

Вы также можете создать свой собственный интерфейс, в котором «представления» добавляются не по строкам и столбцам, а с использованием стека или любого другого виджета по вашему выбору.

person meherdeep thakur    schedule 08.04.2020
comment
Для более высокого масштабирования я предлагаю вам использовать цикл for с _expandedVideoRow (views.sublist (i, i + 2)) и _expandedVideoRow (views.sublist (i, i + 1)), - person meherdeep thakur; 14.05.2021