当前位置: 首页 > 知识库问答 >
问题:

在颤振上显示空白屏幕的Agora局部视图

芮学
2023-03-14

我试图集成Agora SDK,我已经能够设置它的功能,但唯一的问题是本地视图是空白的,直到我做热重启,热重启后一切都很好,远程视图工作正常,我一直试图调试这个问题没有用,下面是我的代码。


    import 'dart:async';
    import 'package:flutter/material.dart';
    import 'package:permission_handler/permission_handler.dart';
    
    import 'package:agora_rtc_engine/rtc_engine.dart';
    import 'package:agora_rtc_engine/rtc_local_view.dart' as RtcLocalView;
    import 'package:agora_rtc_engine/rtc_remote_view.dart' as RtcRemoteView;
    
    const appId = "e660ebb529e34d838fedc01ed1a1b5e4";
    const token =
        "006e660ebb529e34d838fedc01ed1a1b5e4IABB69OL6buUPHAgM4dq+hpsHKMLCooStMhXyvSdauF2eNzDPrsAAAAAEADHF4BY49MwYQEAAQDi0zBh";
    
    void main() => runApp(MaterialApp(home: MyApp()));
    
    class MyApp extends StatefulWidget {
      @override
      _MyAppState createState() => _MyAppState();
    }
    
    class _MyAppState extends State {
      int _remoteUid;
      RtcEngine _engine;
    
      @override
      void initState() {
        super.initState();
        initAgora();
      }
    
      Future initAgora() async {
        // retrieve permissions
        await [Permission.microphone, Permission.camera].request();
    
        //create the engine
        _engine = await RtcEngine.create(appId);
        await _engine.enableVideo();
        _engine.setEventHandler(
          RtcEngineEventHandler(
            joinChannelSuccess: (String channel, int uid, int elapsed) {
              print("local user $uid joined");
            },
            userJoined: (int uid, int elapsed) {
              print("remote user $uid joined");
              setState(() {
                _remoteUid = uid;
              });
            },
            userOffline: (int uid, UserOfflineReason reason) {
              print("remote user $uid left channel");
              setState(() {
                _remoteUid = null;
              });
            },
          ),
        );
    
        await _engine.joinChannel(token, "firstchannel", null, 0);
      }
    
      // Create UI with local view and remote view
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: const Text('Agora Video Call'),
          ),
          body: Stack(
            children: [
              Center(
                child: _remoteVideo(),
              ),
              Align(
                alignment: Alignment.topLeft,
                child: Container(
                  width: 100,
                  height: 100,
                  child: Center(
                    child: RtcLocalView.SurfaceView(),
                  ),
                ),
              ),
            ],
          ),
        );
      }
    
      Widget _renderLocalPreview() {
        return RtcLocalView.SurfaceView();
      }
    
      // Display remote user's video
      Widget _remoteVideo() {
        if (_remoteUid != null) {
          return RtcRemoteView.SurfaceView(uid: _remoteUid);
        } else {
          return Text(
            'Please wait for remote user to join',
            textAlign: TextAlign.center,
          );
        }
      }
    }

   

共有1个答案

穆招
2023-03-14

在与这个问题斗争了一段时间后,我意识到问题来自哪里。在尝试显示本地预览之前,我需要包含一个布尔变量来检查本地用户是否加入了频道。实际上,Agora SDK被设计为仅当用户加入频道时才显示本地预览。

Widget _renderLocalPreview() {
    if (_localUserJoined) {
      return RtcLocalView.SurfaceView();
    } else {
      return Text(
        'Joining Channel, Please wait.....',
        textAlign: TextAlign.center,
      );
    }
  }
 类似资料:
  • 问题内容: 嗨,我正在制作一个游戏,并且在游戏中添加了一个共享按钮。我希望用户能够在一条消息中彼此共享一条消息,URL和屏幕快照。它的共享方面工作正常,并且一切正常,但屏幕快照本身显示为空白。这是我用来截屏的代码: 请帮助我解决此问题,请确保使用Swift语言来解决。如果这有所作为,我也使用SpriteKit技术。我是编码新手,所以请非常清楚。非常感谢你! 问题答案: 更新: Xcode 8.2.

  • 下面是代码:home.xml Home.java 我是不是也应该贴上HomFrag代码? 这三张照片给出了关于问题的所有信息,正如你可以看到的第一张图片显示了应用程序的启动。然后我点击其他页面,点击返回,我得到的结果在第二个图像,和第三个空白屏幕时,我再次点击返回。我不明白问题的原因,如果有谁以前遇到过这个问题,请帮助。

  • 正常模式下不播放同一视频。 我的问题是, 当我尝试播放视频,我得到的只是空白视频,但我得到了所有的音频和字幕。 我的代码有什么错误。请给我任何建议。

  • 我一直在尝试让谷歌地图在Android Studio工作。 使用Google maps模板创建新项目时,效果很好。然而,当我在现有项目中实现地图时,它显示的只是一个灰色屏幕,左下角有一个徽标。 现有项目使用一个片段导航系统和一个单独的活动来承载所有其他片段类。但这不应该是问题的原因,因为我以与模板中相同的方式实现了映射,但它也不起作用。 我检查了Logcat输出,密钥验证没有错误。如果我更改密钥,

  • 我是一个完全不懂Android编程的人,通过阅读教程,我第一次尝试了它。问题是我用Android4.4.2的API创建了多个仿真器,但没有一个显示任何东西,只有空白屏幕..我用Google API 19试了一个AVD..这也不起作用..谁能指导我弄清楚它有什么问题..提前谢谢

  • 试图制作一个简单的应用程序,从服务器获取JSON数据,并在自定义列表中显示它们,非常简单的事情。 但当我运行应用程序时,它显示的是白色空白屏幕,但没有数据。它也没有显示任何错误,我假设如果有任何错误,它不会在我的手机中运行。但不显示获取的数据。 下面是类 我发现的其他问题与我的问题不匹配,否则不会添加这个问题。