Commit 56c5346c authored by Alex朱枝文's avatar Alex朱枝文

直播间im简单处理

parent 6431d16c
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved. // Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
// //
import HyphenateChat
import AgoraRtcKit import AgoraRtcKit
import UIKit import UIKit
...@@ -61,6 +62,48 @@ class YHLivePlayerViewController: YHBasePlayerViewController { ...@@ -61,6 +62,48 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
setupData()
setupNoti()
}
deinit {
//
}
/// 是否可以返回,包括点击返回和手势返回,默认YES
override func navigationShouldPop() -> Bool {
quitChatRoom()
navigationController?.popViewController(animated: true)
return false
}
// MARK: - Setup
private func setupUI() {
containerView.addSubview(bottomInputBar)
containerView.addSubview(messageListView)
bottomInputBar.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.top.equalTo(view.safeAreaLayoutGuide.snp.bottom).offset(-YHInputBottomBar.inputActionHeight)
}
messageListView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(16)
make.bottom.equalTo(bottomInputBar.snp.top).offset(-14)
make.height.width.equalTo(listMaxWidth)
}
topBarView.closeButtonClickEvent = { [weak self] in
guard let self = self else {
return
}
self.quitChatRoom()
self.navigationController?.popViewController(animated: true)
}
}
private func setupData() {
requestData(id: liveId) { [weak self] liveDetail, error in requestData(id: liveId) { [weak self] liveDetail, error in
guard let self = self else { guard let self = self else {
return return
...@@ -74,24 +117,37 @@ class YHLivePlayerViewController: YHBasePlayerViewController { ...@@ -74,24 +117,37 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
} }
self.topBarView.setupTopBarView(headUrl: liveDetail.avatar, nickname: liveDetail.hxNickname, count: liveDetail.access_num) self.topBarView.setupTopBarView(headUrl: liveDetail.avatar, nickname: liveDetail.hxNickname, count: liveDetail.access_num)
self.play(with: liveDetail.pullUrl) self.play(with: liveDetail.pullUrl)
YHIMHelper.shared.joinChatRoom(roomID: liveDetail.roomId, leaveOtherRooms: true) { [weak self] error in
guard let self = self else {
return
}
if let error = error {
printLog("joinChatRoom: \(error)")
} else {
printLog("joinChatRoom: success")
YHIMHelper.shared.fetchHistoryMessage(roomID: liveDetail.roomId) { list, error in
//
}
}
}
} }
} }
// MARK: - Setup private func setupNoti() {
NotificationCenter.default.addObserver(self, selector: #selector(didChatManagerReceiveMessages(_:)), name: YHIMHelper.didChatManagerReceiveMessages, object: nil)
}
private func setupUI() { private func quitChatRoom() {
containerView.addSubview(bottomInputBar) guard let roomId = self.viewModel.liveDetailModel?.roomId else {
containerView.addSubview(messageListView) return
bottomInputBar.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.top.equalTo(view.safeAreaLayoutGuide.snp.bottom).offset(-YHInputBottomBar.inputActionHeight)
} }
messageListView.snp.makeConstraints { make in YHIMHelper.shared.quitChatRoom(roomID: roomId) { error in
make.left.equalToSuperview().offset(16) if let error = error {
make.bottom.equalTo(bottomInputBar.snp.top).offset(-14) printLog("quitChatRoom: \(error)")
make.height.width.equalTo(listMaxWidth) } else {
printLog("quitChatRoom: success")
}
} }
} }
...@@ -106,6 +162,13 @@ class YHLivePlayerViewController: YHBasePlayerViewController { ...@@ -106,6 +162,13 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
showAlert(message: "播放失败,错误码:\(result)") showAlert(message: "播放失败,错误码:\(result)")
} }
} }
@objc private func didChatManagerReceiveMessages(_ note: Notification) {
guard let messages = note.object as? [EMChatMessage], let message = messages.first, message.conversationId == viewModel.liveDetailModel?.roomId else {
return
}
printLog("")
}
} }
extension YHLivePlayerViewController { extension YHLivePlayerViewController {
......
...@@ -24,6 +24,10 @@ class YHIMHelper: NSObject { ...@@ -24,6 +24,10 @@ class YHIMHelper: NSObject {
} }
return false return false
} }
var currentNickname: String {
return viewModel.huanXinUserInfoModel?.nickname ?? ""
}
static let shared: YHIMHelper = { static let shared: YHIMHelper = {
let helper = YHIMHelper() let helper = YHIMHelper()
...@@ -93,17 +97,6 @@ class YHIMHelper: NSObject { ...@@ -93,17 +97,6 @@ class YHIMHelper: NSObject {
} }
} }
func getToken() {
guard let userId = YHLoginManager.shared.userModel?.id, userId.count > 0 else {
return
}
viewModel.getHuanXinToken { tokenModel, _ in
guard let tokenModel = tokenModel else {
return
}
}
}
@objc private func loginSuccess() { @objc private func loginSuccess() {
registerAndLoginCurrentUser { _ in registerAndLoginCurrentUser { _ in
// //
...@@ -208,8 +201,9 @@ extension YHIMHelper { ...@@ -208,8 +201,9 @@ extension YHIMHelper {
} }
/// 加入聊天室 /// 加入聊天室
func joinChatRoom(roomID: String, nickname: String, leaveOtherRooms: Bool, completion: @escaping (EMError?) -> Void) { func joinChatRoom(roomID: String, leaveOtherRooms: Bool, completion: @escaping (EMError?) -> Void) {
EMClient.shared().roomManager?.joinChatroom(roomID, ext: "fromNickName=\(nickname)", leaveOtherRooms: leaveOtherRooms, completion: { _, err in printLog("joinChatRoom: \(currentNickname)")
EMClient.shared().roomManager?.joinChatroom(roomID, ext: "fromNickName=\(currentNickname)", leaveOtherRooms: leaveOtherRooms, completion: { _, err in
DispatchQueue.main.async { DispatchQueue.main.async {
if let err = err { if let err = err {
printLog(err.errorDescription) printLog(err.errorDescription)
......
...@@ -98,7 +98,7 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget { ...@@ -98,7 +98,7 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
[weak self] in [weak self] in
guard let self = self else { return } guard let self = self else { return }
if !checkLogin() { return } if !checkLogin() { return }
let vc = YHMySettingViewController() let vc = YHMySettingViewController()//let vc = YHLivePlayerViewController(id: 2)
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment