Skip to content

Commit 9ecdc21

Browse files
authored
fix: update example code for switching camera (#221)
* chore: update livekit-client to 2.9.8 * chore: lint fix
1 parent fbf8618 commit 9ecdc21

File tree

7 files changed

+39
-29
lines changed

7 files changed

+39
-29
lines changed

ci/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"dependencies": {
1414
"@livekit/react-native": "*",
1515
"@livekit/react-native-webrtc": "^125.0.8",
16-
"livekit-client": "^2.9.0",
16+
"livekit-client": "^2.9.8",
1717
"react": "18.2.0",
1818
"react-native": "0.74.2"
1919
},

ci/yarn.lock

+10-10
Original file line numberDiff line numberDiff line change
@@ -2165,12 +2165,12 @@ __metadata:
21652165
languageName: node
21662166
linkType: hard
21672167

2168-
"@livekit/protocol@npm:1.33.0":
2169-
version: 1.33.0
2170-
resolution: "@livekit/protocol@npm:1.33.0"
2168+
"@livekit/protocol@npm:1.34.0":
2169+
version: 1.34.0
2170+
resolution: "@livekit/protocol@npm:1.34.0"
21712171
dependencies:
21722172
"@bufbuild/protobuf": ^1.10.0
2173-
checksum: 00609412a17326b1d6c145d137e4ca97448b1fc6b295ed0c1d9714b029cd5a004b96baa7ee7fb53fb5569180f7af63546299224c03f3ce9899d30e8d41a7a8b7
2173+
checksum: e08d0ceb20e5434b352e0c42f89d13f29edbf853a968924aea9792660d79edc13a535288d05a47da97843e1e3a66917adb79ee51b8652442d42123e5f75f649c
21742174
languageName: node
21752175
linkType: hard
21762176

@@ -3883,7 +3883,7 @@ __metadata:
38833883
eslint: ^8.19.0
38843884
install-local: ^3.0.1
38853885
jest: ^29.6.3
3886-
livekit-client: ^2.9.0
3886+
livekit-client: ^2.9.8
38873887
prettier: 2.8.8
38883888
react: 18.2.0
38893889
react-native: 0.74.2
@@ -6956,20 +6956,20 @@ __metadata:
69566956
languageName: node
69576957
linkType: hard
69586958

6959-
"livekit-client@npm:^2.9.0":
6960-
version: 2.9.2
6961-
resolution: "livekit-client@npm:2.9.2"
6959+
"livekit-client@npm:^2.9.8":
6960+
version: 2.9.8
6961+
resolution: "livekit-client@npm:2.9.8"
69626962
dependencies:
69636963
"@livekit/mutex": 1.1.1
6964-
"@livekit/protocol": 1.33.0
6964+
"@livekit/protocol": 1.34.0
69656965
events: ^3.3.0
69666966
loglevel: ^1.9.2
69676967
sdp-transform: ^2.15.0
69686968
ts-debounce: ^4.0.0
69696969
tslib: 2.8.1
69706970
typed-emitter: ^2.1.0
69716971
webrtc-adapter: ^9.0.1
6972-
checksum: c12b33b99bfaa01ed14307a34190c273982c49781d16430fab6ca597ba4c6fa1ee49b2d73bfe2670e9779c60ec35bc93936324a0f9e12b236c5d53bb6b2374b6
6972+
checksum: cc01e43fbf5fa298c6696a3a084852d04cd818c554e9b3b9469ad22e85b8d29a975d96072d8432aff79651337f2950881c266117d0490c8ab94112dfda789ca4
69736973
languageName: node
69746974
linkType: hard
69756975

example/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"@react-navigation/native": "^6.0.8",
1616
"@react-navigation/native-stack": "^6.5.0",
1717
"@supersami/rn-foreground-service": "^2.1.1",
18-
"livekit-client": "^2.9.0",
18+
"livekit-client": "^2.9.8",
1919
"react": "18.2.0",
2020
"react-native": "0.74.2",
2121
"react-native-callkeep": "^4.3.14",

example/src/RoomPage.tsx

+14-4
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import {
3939
import { startCallService, stopCallService } from './callservice/CallService';
4040
import Toast from 'react-native-toast-message';
4141

42-
import { Track } from 'livekit-client';
42+
import { LocalVideoTrack, Track } from 'livekit-client';
4343

4444
export const RoomPage = ({
4545
navigation,
@@ -160,6 +160,7 @@ const RoomView = ({ navigation, e2ee }: RoomViewProps) => {
160160
isMicrophoneEnabled,
161161
isScreenShareEnabled,
162162
localParticipant,
163+
cameraTrack,
163164
} = useLocalParticipant();
164165

165166
// Prepare for iOS screenshare.
@@ -192,6 +193,10 @@ const RoomView = ({ navigation, e2ee }: RoomViewProps) => {
192193
localParticipant.setCameraEnabled(enabled);
193194
}}
194195
switchCamera={async () => {
196+
if (!cameraTrack) {
197+
return;
198+
}
199+
195200
let facingModeStr = !isCameraFrontFacing ? 'front' : 'environment';
196201
setCameraFrontFacing(!isCameraFrontFacing);
197202

@@ -209,12 +214,17 @@ const RoomView = ({ navigation, e2ee }: RoomViewProps) => {
209214
}
210215
}
211216

212-
if (newDevice == null) {
217+
if (!newDevice) {
213218
return;
214219
}
215220

216-
//@ts-ignore
217-
await room.switchActiveDevice('videoinput', newDevice.deviceId);
221+
const localCameraTrack = cameraTrack.videoTrack;
222+
if (localCameraTrack instanceof LocalVideoTrack) {
223+
localCameraTrack.restartTrack({
224+
deviceId: newDevice.deviceId,
225+
facingMode: facingModeStr,
226+
});
227+
}
218228
}}
219229
screenShareEnabled={isScreenShareEnabled}
220230
setScreenShareEnabled={(enabled: boolean) => {

example/yarn.lock

+2-2
Original file line numberDiff line numberDiff line change
@@ -6102,7 +6102,7 @@ __metadata:
61026102
languageName: node
61036103
linkType: hard
61046104

6105-
"livekit-client@npm:^2.9.0":
6105+
"livekit-client@npm:^2.9.8":
61066106
version: 2.9.8
61076107
resolution: "livekit-client@npm:2.9.8"
61086108
dependencies:
@@ -6138,7 +6138,7 @@ __metadata:
61386138
"@types/fastestsmallesttextencoderdecoder": ^1.0.0
61396139
"@types/react": ^18.2.6
61406140
babel-plugin-module-resolver: ^4.1.0
6141-
livekit-client: ^2.9.0
6141+
livekit-client: ^2.9.8
61426142
patch-package: ^8.0.0
61436143
react: 18.2.0
61446144
react-native: 0.74.2

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
"eslint-plugin-prettier": "^4.2.1",
7373
"husky": "^7.0.4",
7474
"jest": "^29.6.3",
75-
"livekit-client": "^2.9.0",
75+
"livekit-client": "^2.9.8",
7676
"pod-install": "^0.2.2",
7777
"prettier": "2.8.8",
7878
"react": "18.2.0",

yarn.lock

+10-10
Original file line numberDiff line numberDiff line change
@@ -2424,12 +2424,12 @@ __metadata:
24242424
languageName: node
24252425
linkType: hard
24262426

2427-
"@livekit/protocol@npm:1.33.0":
2428-
version: 1.33.0
2429-
resolution: "@livekit/protocol@npm:1.33.0"
2427+
"@livekit/protocol@npm:1.34.0":
2428+
version: 1.34.0
2429+
resolution: "@livekit/protocol@npm:1.34.0"
24302430
dependencies:
24312431
"@bufbuild/protobuf": ^1.10.0
2432-
checksum: 00609412a17326b1d6c145d137e4ca97448b1fc6b295ed0c1d9714b029cd5a004b96baa7ee7fb53fb5569180f7af63546299224c03f3ce9899d30e8d41a7a8b7
2432+
checksum: e08d0ceb20e5434b352e0c42f89d13f29edbf853a968924aea9792660d79edc13a535288d05a47da97843e1e3a66917adb79ee51b8652442d42123e5f75f649c
24332433
languageName: node
24342434
linkType: hard
24352435

@@ -2473,7 +2473,7 @@ __metadata:
24732473
events: ^3.3.0
24742474
husky: ^7.0.4
24752475
jest: ^29.6.3
2476-
livekit-client: ^2.9.0
2476+
livekit-client: ^2.9.8
24772477
loglevel: ^1.8.0
24782478
pod-install: ^0.2.2
24792479
prettier: 2.8.8
@@ -8717,20 +8717,20 @@ __metadata:
87178717
languageName: node
87188718
linkType: hard
87198719

8720-
"livekit-client@npm:^2.9.0":
8721-
version: 2.9.2
8722-
resolution: "livekit-client@npm:2.9.2"
8720+
"livekit-client@npm:^2.9.8":
8721+
version: 2.9.8
8722+
resolution: "livekit-client@npm:2.9.8"
87238723
dependencies:
87248724
"@livekit/mutex": 1.1.1
8725-
"@livekit/protocol": 1.33.0
8725+
"@livekit/protocol": 1.34.0
87268726
events: ^3.3.0
87278727
loglevel: ^1.9.2
87288728
sdp-transform: ^2.15.0
87298729
ts-debounce: ^4.0.0
87308730
tslib: 2.8.1
87318731
typed-emitter: ^2.1.0
87328732
webrtc-adapter: ^9.0.1
8733-
checksum: c12b33b99bfaa01ed14307a34190c273982c49781d16430fab6ca597ba4c6fa1ee49b2d73bfe2670e9779c60ec35bc93936324a0f9e12b236c5d53bb6b2374b6
8733+
checksum: cc01e43fbf5fa298c6696a3a084852d04cd818c554e9b3b9469ad22e85b8d29a975d96072d8432aff79651337f2950881c266117d0490c8ab94112dfda789ca4
87348734
languageName: node
87358735
linkType: hard
87368736

0 commit comments

Comments
 (0)