opt live room

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-06-04 14:51:09 +08:00
parent 50efe1e24c
commit f50b1d2beb
3 changed files with 42 additions and 13 deletions

View File

@@ -103,7 +103,9 @@ class LiveHttp {
}
static Future liveRoomInfo({roomId, qn}) async {
var res = await Request().get(Api.liveRoomInfo, queryParameters: {
var res = await Request().get(
Api.liveRoomInfo,
queryParameters: {
'room_id': roomId,
'protocol': '0, 1',
'format': '0, 1, 2',
@@ -113,7 +115,8 @@ class LiveHttp {
'ptype': 8,
'dolby': 5,
'panorama': 1,
});
},
);
if (res.data['code'] == 0) {
return {'status': true, 'data': RoomInfoModel.fromJson(res.data['data'])};
} else {

View File

@@ -15,7 +15,9 @@ class RoomInfoModel {
roomId = json['room_id'];
liveStatus = json['live_status'];
liveTime = json['live_time'];
playurlInfo = PlayurlInfo.fromJson(json['playurl_info']);
playurlInfo = json['playurl_info'] == null
? null
: PlayurlInfo.fromJson(json['playurl_info']);
isPortrait = json['is_portrait'];
}
}
@@ -28,7 +30,8 @@ class PlayurlInfo {
Playurl? playurl;
PlayurlInfo.fromJson(Map<String, dynamic> json) {
playurl = Playurl.fromJson(json['playurl']);
playurl =
json['playurl'] == null ? null : Playurl.fromJson(json['playurl']);
}
}

View File

@@ -88,6 +88,29 @@ class LiveRoomController extends GetxController {
var res = await LiveHttp.liveRoomInfo(roomId: roomId, qn: currentQn);
if (res['status']) {
RoomInfoModel data = res['data'];
if (data.liveStatus != 1) {
Get.dialog(
AlertDialog(
title: const Text('当前直播间未开播'),
actions: [
TextButton(
onPressed: Get.back,
child: Text(
'关闭',
style: TextStyle(color: Get.theme.colorScheme.outline),
),
),
TextButton(
onPressed: () => Get
..back()
..back(),
child: const Text('退出'),
),
],
),
);
return;
}
isPortrait.value = data.isPortrait ?? false;
List<CodecItem> codec =
data.playurlInfo!.playurl!.stream!.first.format!.first.codec!;