diff --git a/lib/http/live.dart b/lib/http/live.dart index 9f56b60c..bf17b932 100644 --- a/lib/http/live.dart +++ b/lib/http/live.dart @@ -64,7 +64,7 @@ class LiveHttp { } } - static Future liveRoomInfo({roomId, qn}) async { + static Future liveRoomInfo({roomId, qn, bool onlyAudio = false}) async { var res = await Request().get( Api.liveRoomInfo, queryParameters: { @@ -77,6 +77,7 @@ class LiveHttp { 'ptype': 8, 'dolby': 5, 'panorama': 1, + if (onlyAudio) 'only_audio': 1, }, ); if (res.data['code'] == 0) { diff --git a/lib/pages/live_room/controller.dart b/lib/pages/live_room/controller.dart index 456c875b..3f2ef4fd 100644 --- a/lib/pages/live_room/controller.dart +++ b/lib/pages/live_room/controller.dart @@ -93,7 +93,11 @@ class LiveRoomController extends GetxController { : Pref.liveQualityCellular; }); } - var res = await LiveHttp.liveRoomInfo(roomId: roomId, qn: currentQn); + var res = await LiveHttp.liveRoomInfo( + roomId: roomId, + qn: currentQn, + onlyAudio: plPlayerController.onlyPlayAudio.value, + ); if (res['status']) { RoomPlayInfoData data = res['data']; if (data.liveStatus != 1) { diff --git a/lib/pages/live_room/view.dart b/lib/pages/live_room/view.dart index 8bcdcaa7..ae882961 100644 --- a/lib/pages/live_room/view.dart +++ b/lib/pages/live_room/view.dart @@ -171,6 +171,7 @@ class _LiveRoomPageState extends State upName: roomInfoH5?.anchorInfo?.baseInfo?.uname, plPlayerController: plPlayerController, onSendDanmaku: onSendDanmaku, + onPlayAudio: _liveRoomController.queryLiveInfo, ), bottomControl: BottomControl( plPlayerController: plPlayerController, diff --git a/lib/pages/live_room/widgets/header_control.dart b/lib/pages/live_room/widgets/header_control.dart index e823e5e8..d077bc9e 100644 --- a/lib/pages/live_room/widgets/header_control.dart +++ b/lib/pages/live_room/widgets/header_control.dart @@ -10,17 +10,19 @@ import 'package:material_design_icons_flutter/material_design_icons_flutter.dart class LiveHeaderControl extends StatelessWidget { const LiveHeaderControl({ + super.key, required this.title, required this.upName, required this.plPlayerController, required this.onSendDanmaku, - super.key, + required this.onPlayAudio, }); final String? title; final String? upName; final PlPlayerController plPlayerController; final VoidCallback onSendDanmaku; + final VoidCallback onPlayAudio; @override Widget build(BuildContext context) { @@ -95,7 +97,11 @@ class LiveHeaderControl extends StatelessWidget { width: 35, height: 35, child: IconButton( - onPressed: plPlayerController.setOnlyPlayAudio, + onPressed: () { + plPlayerController.onlyPlayAudio.value = + !plPlayerController.onlyPlayAudio.value; + onPlayAudio(); + }, style: ButtonStyle( padding: WidgetStateProperty.all(EdgeInsets.zero), ),