Skip to content

Commit 3003550

Browse files
committed
add client role
1 parent 804db5e commit 3003550

File tree

4 files changed

+35
-4
lines changed

4 files changed

+35
-4
lines changed

macOS/APIExample/Commons/AgoraExtension.swift

+14
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,20 @@ extension AgoraAudioProfile {
7373
}
7474
}
7575

76+
extension AgoraClientRole {
77+
func description() -> String {
78+
switch self {
79+
case .broadcaster: return "Broadcaster".localized
80+
case .audience: return "Audience".localized
81+
default:
82+
return "\(self.rawValue)"
83+
}
84+
}
85+
static func allValues() -> [AgoraClientRole] {
86+
return [.broadcaster, .audience]
87+
}
88+
}
89+
7690
extension AgoraAudioScenario {
7791
func description() -> String {
7892
switch self {

macOS/APIExample/Examples/Basic/JoinChannelVideo/Base.lproj/JoinChannelVideo.storyboard

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2-
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="11134" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
33
<dependencies>
4-
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11134"/>
4+
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16097.2"/>
5+
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
56
</dependencies>
67
<scenes>
78
<!--Join Channel Video-->
@@ -102,6 +103,14 @@
102103
<action selector="onLayoutChanged:" target="YjT-yy-DnJ" id="zAL-9Z-bsX"/>
103104
</connections>
104105
</popUpButton>
106+
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="04f-84-lGj">
107+
<rect key="frame" x="342" y="7" width="105" height="25"/>
108+
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="Lpb-l7-tF9">
109+
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
110+
<font key="font" metaFont="system"/>
111+
<menu key="menu" id="L5f-yn-jkF"/>
112+
</popUpButtonCell>
113+
</popUpButton>
105114
</subviews>
106115
<constraints>
107116
<constraint firstItem="3Eb-5H-nWp" firstAttribute="trailing" secondItem="kOG-V2-gqP" secondAttribute="trailing" id="2vK-OM-Wts"/>
@@ -111,14 +120,17 @@
111120
<constraint firstItem="9b9-Hz-pR8" firstAttribute="leading" secondItem="Zhj-u7-F56" secondAttribute="leading" id="4rV-f1-ccB"/>
112121
<constraint firstItem="Zhj-u7-F56" firstAttribute="top" secondItem="9b9-Hz-pR8" secondAttribute="bottom" constant="10" id="6YL-0h-OeU"/>
113122
<constraint firstItem="9b9-Hz-pR8" firstAttribute="top" secondItem="V5w-Eq-ICP" secondAttribute="bottom" constant="10" id="71u-M7-JFx"/>
123+
<constraint firstItem="04f-84-lGj" firstAttribute="leading" secondItem="3Eb-5H-nWp" secondAttribute="leading" id="BAm-TT-Wkg"/>
114124
<constraint firstAttribute="height" constant="600" id="CNq-zV-4uO"/>
115125
<constraint firstItem="Zhj-u7-F56" firstAttribute="leading" secondItem="hdm-Od-EVN" secondAttribute="leading" constant="20" id="DLa-RI-D2Z"/>
116126
<constraint firstItem="r7G-ng-73B" firstAttribute="leading" secondItem="hdm-Od-EVN" secondAttribute="leading" id="EsO-Fa-NR9"/>
127+
<constraint firstItem="04f-84-lGj" firstAttribute="trailing" secondItem="3Eb-5H-nWp" secondAttribute="trailing" id="FiB-RF-5Bh"/>
117128
<constraint firstItem="3Eb-5H-nWp" firstAttribute="leading" secondItem="kOG-V2-gqP" secondAttribute="leading" id="H38-HP-OfB"/>
118129
<constraint firstItem="kOG-V2-gqP" firstAttribute="leading" secondItem="V5w-Eq-ICP" secondAttribute="trailing" constant="10" id="J2c-KA-ffA"/>
119130
<constraint firstItem="ddJ-7d-bc6" firstAttribute="leading" secondItem="yEf-Yg-oqG" secondAttribute="leading" id="JkT-H9-uer"/>
120131
<constraint firstItem="V5w-Eq-ICP" firstAttribute="trailing" secondItem="9b9-Hz-pR8" secondAttribute="trailing" id="QYd-lA-zeK"/>
121132
<constraint firstItem="ddJ-7d-bc6" firstAttribute="trailing" secondItem="yEf-Yg-oqG" secondAttribute="trailing" id="VGR-i8-6nT"/>
133+
<constraint firstItem="04f-84-lGj" firstAttribute="centerY" secondItem="Zhj-u7-F56" secondAttribute="centerY" id="VwX-R5-jFC"/>
122134
<constraint firstItem="V5w-Eq-ICP" firstAttribute="leading" secondItem="9b9-Hz-pR8" secondAttribute="leading" id="Ycm-xs-NrS"/>
123135
<constraint firstItem="ddJ-7d-bc6" firstAttribute="bottom" secondItem="yEf-Yg-oqG" secondAttribute="bottom" id="b2T-Ga-zkw"/>
124136
<constraint firstItem="kOG-V2-gqP" firstAttribute="centerY" secondItem="V5w-Eq-ICP" secondAttribute="centerY" id="byO-lP-YP2"/>
@@ -143,6 +155,7 @@
143155
<outlet property="leaveBtn" destination="ddJ-7d-bc6" id="QZd-EA-yya"/>
144156
<outlet property="micPicker" destination="9b9-Hz-pR8" id="Sud-pS-feL"/>
145157
<outlet property="resolutionPicker" destination="kOG-V2-gqP" id="kq0-8P-qDC"/>
158+
<outlet property="rolePicker" destination="04f-84-lGj" id="AUe-Wv-zFr"/>
146159
</connections>
147160
</viewController>
148161
<customObject id="sAD-hK-POR" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>

macOS/APIExample/Examples/Basic/JoinChannelVideo/JoinChannelVideo.swift

+3-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class JoinChannelVideoMain: BaseViewController {
2121
@IBOutlet weak var resolutionPicker: NSPopUpButton!
2222
@IBOutlet weak var fpsPicker: NSPopUpButton!
2323
@IBOutlet weak var layoutPicker: NSPopUpButton!
24+
@IBOutlet weak var rolePicker: NSPopUpButton!
2425
var agoraKit: AgoraRtcEngineKit!
2526
var cameras:[AgoraRtcDeviceInfo] = [] {
2627
didSet {
@@ -66,6 +67,7 @@ class JoinChannelVideoMain: BaseViewController {
6667
return "\(fps)fps"
6768
}))
6869
fpsPicker.selectItem(at: Configs.defaultFpsIdx)
70+
rolePicker.addItems(withTitles: AgoraClientRole.allValues().map({$0.description()}))
6971

7072
// set up agora instance when view loaded
7173
let config = AgoraRtcEngineConfig()
@@ -103,7 +105,7 @@ class JoinChannelVideoMain: BaseViewController {
103105
// set live broadcaster mode
104106
agoraKit.setChannelProfile(.liveBroadcasting)
105107
// set myself as broadcaster to stream video/audio
106-
agoraKit.setClientRole(.broadcaster)
108+
agoraKit.setClientRole(AgoraClientRole.allValues()[rolePicker.indexOfSelectedItem])
107109

108110
// enable video module and set up video encoding configs
109111
let resolution = Configs.Resolutions[resolutionPicker.indexOfSelectedItem]

macOS/APIExample/Localizable.strings

+2
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,6 @@
9797
"Room Size" = "房间尺寸";
9898
"Wet Delay" = "早期反射信号延迟";
9999
"Strength" = "混响持续强度";
100+
"Broadcaster" = "主播";
101+
"Audience" = "观众";
100102

0 commit comments

Comments
 (0)