Ich versuche, das Agora SDK zu integrieren. Ich konnte es so einrichten, dass es funktioniert, aber das einzige Problem ist, dass die lokale Ansicht leer ist, bis ich einen Hot-Neustart durchführe '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' als 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 ())); initState() {
super.initState();
initAgora();
}
Future initAgora() async {
// Berechtigungen abrufen
waiting [Permission.microphone, Permission.camera].request();
//die Engine erstellen
_engine = waiting RtcEngine.create(appId);
wait _engine.enableVideo();
_engine.setEventHandler(
RtcEngineEventHandler(
joinChannelSuccess: (String channel, int uid, int elapsed) {
print("local user $uid connected");
},
userJoined: (int uid, int elapsed) {
print("Remote-Benutzer $uid ist beigetreten");
setState(() {
_remoteUid = uid;
});
},
userOffline: (int uid, UserOfflineReason reason) {
print("Remote-Benutzer $uid hat Kanal verlassen");
setState(() {
_remoteUid = null;
});
},
),
);
waiting _engine.joinChannel(token, "firstchannel", null, 0);
}
// Benutzeroberfläche mit lokaler Ansicht und Remote-Ansicht erstellen
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
Titel: const Text('Agora Video Call'),
),
body: Stack(
untergeordnete Elemente: [
Center(
untergeordnetes Element: _remoteVideo(),
),
Align(
Ausrichtung: Alignment.topLeft,
untergeordnetes Element: Container(
Breite: 100,
Höhe: 100,
child: Center(
child: RtcLocalView.SurfaceView(),
),
),
),
],
),
);
}
Widget _renderLocalPreview() {
return RtcLocalView.SurfaceView();
}
// Video des Remote-Benutzers anzeigen
Widget _remoteVideo() {
if (_remoteUid != null) {
return RtcRemoteView.SurfaceView(uid: _remoteUid);
} else {
return Text(
'Bitte warten Sie, bis der Remote-Benutzer beitritt',
textAlign: TextAlign.center,
);
}
}
}
Lokale Agora-Ansicht mit leerem Bildschirm auf Flutter ⇐ IOS
-
- Similar Topics
- Replies
- Views
- Last post
Mobile version