-
Notifications
You must be signed in to change notification settings - Fork 70
Media devices
Alex Andres edited this page Aug 20, 2021
·
1 revision
Cameras and microphones play a key role in WebRTC. In a more complex application, you will most likely want to check all the connected cameras and microphones and select the appropriate device for the WebRTC session. These devices can be enumerated with the class MediaDevices
. With MediaDevices
you can also listen for device changes, whenever a device is connected or disconnected.
Enumerating connected media devices
Query microphones:
for (AudioDevice mic : MediaDevices.getAudioCaptureDevices()) {
System.out.println(mic);
}
Query speakers and playback devices:
for (AudioDevice speaker : MediaDevices.getAudioRenderDevices()) {
System.out.println(speaker);
}
Query cameras:
for (VideoDevice cam : MediaDevices.getVideoCaptureDevices()) {
System.out.println(cam);
}
Query camera capabilities:
for (VideoDevice cam : MediaDevices.getVideoCaptureDevices()) {
System.out.println(cam);
for (VideoCaptureCapability capability : MediaDevices.getVideoCaptureCapabilities(cam)) {
System.out.println(capability);
}
}
Listen for device changes
Observe whenever a device has been (dis)connected, e.g., by USB or Bluetooth.
MediaDevices.addDeviceChangeListener(new DeviceChangeListener() {
@Override
public void deviceConnected(Device device) {
System.out.println("Device connected: " + device);
}
@Override
public void deviceDisconnected(Device device) {
System.out.println("Device disconnected: " + device);
}
});