LocalMedia
LocalMedia 클래스는 Local Participant(로컬 참여자)가 생성한 오디오와 비디오를 제어합니다. LocalMedia 클래스는 Property와 Method로 구성됩니다.
표LocalMedia 클래스 전체 목록클래스 | 구분 | 항목 | 설명 |
---|---|---|---|
LocalMedia | Property | room | Room 객체 - LocalMedia 객체가 Room에 공유되면 해당 속성으로 접근 가능 |
audio | LocalMedia에 속해 있는 LocalAudio 객체 | ||
video | LocalMedia에 속해 있는 LocalVideo 객체 | ||
Method | getDevices() | 로컬 참여자가 사용중인 로컬 디바이스 목록 반환 | |
getMicDevices() | 로컬 참여자가 사용 중인 로컬 디바이스 중 오디오 장치 목록 반환 | ||
getSpeakerDevices() | 로컬 참여자가 사용 중인 로컬 디바이스 중 스피커 장치 목록 반환 | ||
getCameraDevices() | 로컬 참여자가 사용 중인 로컬 디바이스 중 비디오 장치 목록 반환 | ||
switchMic() | 로컬 참여자가 사용 중인 오디오(마이크) 장치 변경 | ||
switchCamera() | 로컬 참여자가 사용 중인 비디오(카메라) 장치 변경 | ||
stop() | LocalMedia에 속해 있는 오디오 객체와 비디오 객체 중지 | ||
setMediaStream() | 외부에서 선언된 미디어스트림(mediaStream) 객체를 LocalMedia 클래스의 LocalAudio와 LocalVideo 속성으로 지정 가능 |
Property
LocalMedia 클래스의 프로퍼티는 다음과 같습니다.
표LocalMedia 프로퍼티 목록Property | 타입 | 설명 |
---|---|---|
room | Room | Room 객체 - LocalMedia 객체가 Room에 공유되면 해당 속성으로 접근 가능 |
audio | LocalAudio | LocalMedia에 속해 있는 LocalAudio 객체 |
video | LocalVideo | LocalMedia에 속해 있는 LocalVideo 객체 |
Method
LocalMedia 클래스의 메서드는 다음과 같습니다.
getDevices()
로컬 참여자가 사용 중인 로컬 디바이스 목록을 반환합니다. 디바이스는 오디오 및 비디오 장치를 모두 포함합니다.
코드예제getDevices() Syntax
const devices = await localMedia.getDevices();
반환 | 구분 | 타입 | 설명 |
---|---|---|---|
promise | 성공 | Promise<MediaDeviceInfo>[] | 오디오 및 비디오 디바이스 목록 |
실패 | Error | 호출 실패 시 반환 |
getMicDevices()
로컬 참여자가 사용 중인 로컬 디바이스 중 오디오 장치 목록을 반환합니다.
코드예제getMicDevices() Syntax
const devices = await localMedia.getMicDevices();
반환 | 구분 | 타입 | 설명 |
---|---|---|---|
promise | 성공 | Promise<MediaDeviceInfo>[] | 디바이스 목록 |
실패 | Error | 호출 실패 시 반환 |
getSpeakerDevices()
로컬 참여자가 사용 중인 로컬 디바이스 중 스피커 장치 목록을 반환합니다.
코드예제getSpeakerDevices() Syntax
const devices = await localMedia.getSpeakerDevices();
반환 | 구분 | 타입 | 설명 |
---|---|---|---|
promise | 성공 | Promise<MediaDeviceInfo>[] | 디바이스 목록 |
실패 | Error | 호출 실패 시 반환 |
getCameraDevices()
로컬 참여자가 사용 중인 로컬 디바이스 중 비디오 장치 목록을 반환합니다.
코드예제getCameraDevices() Syntax
const devices = await localMedia.getCameraDevices();
반환 | 구분 | 타입 | 설명 |
---|---|---|---|
promise | 성공 | Promise<MediaDeviceInfo>[] | 디바이스 목록 |
실패 | Error | 호출 실패 시 반환 |
switchMic()
로컬 참여자가 사용 중인 오디오(마이크) 장치를 변경합니다.
코드예제switchMic() Syntax
await localMedia.switchMic('{deviceId}');
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
deviceId | String | 필수 |
변경을 원하는 디바이스 아이디 - getMicDevices() 메서드를 통해 획득한 deviceId |
반환 | 구분 | 타입 | 설명 |
---|---|---|---|
promise | 성공 | N/A | 성공 시 아무것도 반환하지 않음 |
실패 | Promise<ServerError>, Promise<ClientError> |
호출 실패 시 반환 - 공유한 오디오 해제 후 재공유(예외 발생 시 ServerError 발생) - 마이크 장치에 정상적으로 접근하지 못하면 ClientError 발생 |
switchCamera()
로컬 참여자가 사용 중인 비디오(카메라) 장치를 변경합니다.
코드예제switchCamera() Syntax
await localMedia.switchCamera('{deviceId}');
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
deviceId | String | 필수 |
디바이스 아이디 - getCameraDevices() 메서드를 통해 획득한 deviceId |
반환 | 구분 | 타입 | 설명 |
---|---|---|---|
promise | 성공 | N/A | 성공 시 아무것도 반환하지 않음 |
실패 | Promise<ServerError> | Promise<ClientError> |
호출 실패 시 반환 - 공유한 비디오 해제 후 재공유(예외 발생 시 ServerError 발생) - 카메라 장치에 정상적으로 접근하지 못하면 ClientError 발생 |
stop()
LocalMedia에 속해 있는 오디오 객체와 비디오 객체를 중지합니다. disconnect() 메서드 호출 시 로컬 미디어(오디오/비디오)를 더 이상 사용하지 않을 경우, stop() 메서드를 호출하여 오디오 객체와 비디오 객체를 중지해야 합니다.
코드예제stop() Syntax
localMedia.stop();
setMediaStream()
외부에서 선언된 미디어스트림(mediaStream) 객체를 LocalMedia 클래스의 LocalAudio와 LocalVideo 속성으로 지정할 수 있습니다. 예를 들어, 동영상을 재생 중인 비디오 태그 또는 캔버스로부터 얻어낸 미디어 스트림을 LocalMedia에 지정하고 이를 다시 리모트 참여자들과 공유할 수 있습니다.
코드예제setMediaStream() Syntax
const videoTag = document.getElementById('video');
const mediaStream = videoTag.captureStream();
//동영상의 미디어스트림을 LocalMedia에 지정
localMedia.setMediaStream(mediaStream);
//동영상을 Room에 공유
room.publish([localMedia]);
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
mediaStream | MediaStream | 필수 |
LocalMedia 클래스의 오디오와 비디오에 설정할 미디어 스트림 객체 |