matlive_client 1.0.1
matlive_client: ^1.0.1 copied to clipboard
Flutter Client SDK for MatLive.
Voice Audio Service #
The Voice Audio Service provides functionalities for managing audio streams in real-time communication applications. It allows users to join audio rooms, manage audio settings, and interact with other users seamlessly.
Features #
- Join Audio Rooms: Users can join specific audio rooms to communicate with others.
- Mute/Unmute: Control audio input by muting or unmuting the microphone.
- Manage Seats: Users can take or leave seats in the audio room.
- Send and Receive Audio: Stream audio to other users in real-time.
- Event Handling: Handle various events related to audio management, such as adding or removing seats.
Initialization Example #
final _matLiveRoomManger = MatLiveRoomManger.instance;
// Example of initalize room
await MatLiveRoomManger.instance.init(
appKey: Consts.appKey,
onInvitedToMic: (seatIndex) {},
onSendGift: (data) {},
);
//connect user
await MatLiveRoomManger.instance.connect(
roomId: widget.roomId,
name: widget.username,
avatar: images[id],
userId: Random().nextInt(10000).toString(),
metadata: '',
);
final seatService = MatLiveRoomManger.instance.seatService;
// Initialize seat layout
seatService!.initWithConfig(
MatLiveAudioRoomLayoutConfig(
rowSpacing: 16,
rowConfigs: [
MatLiveAudioRoomLayoutRowConfig(count: 4, seatSpacing: 12),
MatLiveAudioRoomLayoutRowConfig(count: 4, seatSpacing: 12),
],
),
);
Events #
Add New Seats #
Dynamically add new rows of seats.
_matLiveRoomManger.addSeatRow(oldCount, newCount);
Remove Seats #
Remove existing rows of seats dynamically.
_matLiveRoomManger.removeSeatRow(oldCount, newCount);
UnMute Seat or Mute Seat #
Toggle the microphone state for a specific seat.
final seatService = MatLiveRoomManger.instance.seatService;
final seat = seatService!.seatList.value[index];
if (!seat.currentUser.value!.isMicOnNotifier.value) {
_matLiveRoomManger.muteSeat(index);
} else {
_matLiveRoomManger.unMuteSeat(index);
}
Lock Seat #
Prevent users from taking a specific seat.
_matLiveRoomManger.lockSeat(index);
UnLock Seat #
Allow users to take a locked seat.
_matLiveRoomManger.unLockSeat(index);
Take Seat #
Request to occupy a specific seat.
_matLiveRoomManger.requestTakeMic(seatIndex);
Switch Seat #
Move to a different seat dynamically.
_matLiveRoomManger.switchSeat(toIndex);
Leave Seat #
Vacate the currently occupied seat.
_matLiveRoomManger.leaveSeat(index);
Remove User From Seat #
Forcefully remove a user from a specific seat.
_matLiveRoomManger.removeUserFromSeat(index);
Send Gift #
Send virtual gifts to other users.
_matLiveRoomManger.sendGift(gift);
Clear Chat #
Clear all chat messages in the room.
_matLiveRoomManger.clearChat();
Invite User To Take Mic #
Invite a specific user to occupy a seat.
_matLiveRoomManger.inviteUserToTakeMic(userId, seatIndex);
Request Take Mic #
Send a request to take the mic in a seat.
_matLiveRoomManger.requestTakeMic(seatIndex);
Send Message #
Send text messages in the chat.
_matLiveRoomManger.sendMessage('text');