在陪玩網站源碼的開發過程中,使用者之間主要的交流方式就是語音連麥,而且為了優化語音連麥的體驗,還選擇了實時音視訊技術,那麼今天我們就一起來看一下iOS陪玩網站源碼下實時語音通話功能實作的流程。
陪玩網站源碼的實時語音場景典型之一就是同一會話中的成員進行實時語音對話。
以 2 人間的實時語音為例,主要流程如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yM0cjZ4YDO5MTOlRGMkRGOmZDMmhTM5ITNlBjZkNmMy8CX2AzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL3M3Lc9CX6MHc0RHaiojIsJye.png)
請注意:
上面流程中以 2 名房間成員間的實時語音為例,實際上 陪玩網站源碼支援多人實時語音,建議開發者按需設計。
1、登入房間
使用者間進行實時語音對話前,需要先登入到陪玩網站源碼的同一個房間。
登入相關源碼片段演實時語音示如下,僅供參考:
ZegoAudioLiveViewController.m
// 登入房間
[[ZegoAudioLive api] loginRoom:self.sessionID completionBlock:^(int errorCode) {
if (errorCode != 0)
{
[self addLogString:[NSString stringWithFormat:NSLocalizedString(@"加入session失敗: %d", nil), errorCode]];
self.tipsLabel.text = [NSString stringWithFormat:NSLocalizedString(@"登入房間失敗: %d", nil), errorCode];
}
else
{
self.mutedButton.enabled = YES;
self.publishButton.enabled = YES;
self.messageButton.enabled = YES;
[self addLogString:[NSString stringWithFormat:NSLocalizedString(@"加入session成功", nil)]];
self.tipsLabel.text = [NSString stringWithFormat:NSLocalizedString(@"登入房間成功", nil)];
}
}];
2、釋出直播
陪玩網站源碼房間内成員均可釋出直播,使用者進入房間成功,預設會自動釋出直播。此時 SDK 會自動開始推流,使用者無需手動觸發。
請注意:如果新使用者進入房間,隻想播放實時語音(但不推流),可在登入房間前,設定為手動釋出直播。則使用者進入房間後,不會自動推流。
手動釋出直播相關源碼片段示範如下,僅供參考:
ZegoAudioLiveViewController.m
// 使用者主動點選釋出直播按鈕
- (IBAction)onPublishButton:(id)sender
{
if (self.isPublished)
{
// 停止直播
[[ZegoAudioLive api] stopPublish];
[self.publishButton setTitle:NSLocalizedString(@"開始直播", nil) forState:UIControlStateNormal];
self.isPublished = NO;
// 删除流
for (ZegoAudioStream *audioStream in self.streamList)
{
if ([audioStream.userID isEqualToString:[ZegoSettings sharedInstance].userID])
{
[self.streamList removeObject:audioStream];
break;
}
}
[self.tableView reloadData];
}
else
{
// 手動釋出直播
BOOL result = [[ZegoAudioLive api] startPublish];
if (result == NO)
{
self.tipsLabel.text = NSLocalizedString(@"開播失敗,直播流超過上限", nil);
}
else
{
[self.publishButton setTitle:NSLocalizedString(@"停止直播", nil) forState:UIControlStateNormal];
self.publishButton.enabled = NO;
}
}
}
3、播放直播
登入陪玩網站源碼房間成功後,SDK 會自動拉流播放直播。使用者無需手動觸發拉流。
4、結束音頻直播
陪玩網站源碼中音頻通話結束後的操作主要是登出房間、清理視圖或資料等。開發者可按需調用。
結束音頻直播相關源碼片段示範如下,僅供參考:
ZegoAudioLiveViewController.m
// 關閉實時語音通話 ViewController
- (IBAction)closeView:(id)sender
{
// 退出房間
[[ZegoAudioLive api] logoutRoom];
[self.streamList removeAllObjects];
[self dismissViewControllerAnimated:YES completion:nil];
}
以上就是“iOS陪玩網站源碼中,實時語音通話功能的實作流程”的全部内容,雖然看起來很容易,但真正做起來還是有一定難度的,希望對大家有幫助。