Package com.amazonaws.ivs.broadcast
Class DeviceDiscovery
- java.lang.Object
-
- com.amazonaws.ivs.broadcast.DeviceDiscovery
-
- All Implemented Interfaces:
Releasable
public class DeviceDiscovery extends java.lang.Object implements Releasable
Use this class to discover local devices, such as microphones or cameras, to attach to the SDK. When you are no longer using any of the devices returned, you must callrelease()
to make sure resources are cleaned up properly. Oncerelease()
is called, the devices that have been returned may stop working, and are no longer valid for attaching to a Broadcast or Stage.Note that the first time you use this class (either to create a DeviceDiscovery object or to access one of its static methods), you must ensure that you are not asynchronously accessing one of the following classes at the same time: Device, BroadcastSession or (if using Stages) Stage or StageAudioManager. Otherwise there is a risk of deadlock due to loading the underlying native library.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
DeviceDiscovery.OnDevicesChangedListener
A listener which notifies when the list of devices changes
-
Constructor Summary
Constructors Constructor Description DeviceDiscovery(android.content.Context context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addOnDevicesChangedListener(DeviceDiscovery.OnDevicesChangedListener listener)
Add a listener to be notified about device changesCustomAudioSource
createAudioInputSource(int channels, BroadcastConfiguration.AudioSampleRate sampleRate, AudioDevice.Format format)
Create an audio input for a custom source.CustomImageSource
createImageInputSource(BroadcastConfiguration.Vec2 size)
Create an image input for a custom source.protected void
finalize()
java.util.List<Device>
listLocalDevices()
List available devices for use without attaching to either Stage or Broadcast session.void
release()
Release the resources associated with this device discovery session.void
removeOnDevicesChangedListener(DeviceDiscovery.OnDevicesChangedListener listener)
Removes a previously added device change listener
-
-
-
Method Detail
-
addOnDevicesChangedListener
public void addOnDevicesChangedListener(@NonNull DeviceDiscovery.OnDevicesChangedListener listener)
Add a listener to be notified about device changes- Parameters:
listener
- The listener to add
-
removeOnDevicesChangedListener
public void removeOnDevicesChangedListener(@NonNull DeviceDiscovery.OnDevicesChangedListener listener)
Removes a previously added device change listener- Parameters:
listener
- The listener to remove
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
release
public void release()
Release the resources associated with this device discovery session.- Specified by:
release
in interfaceReleasable
-
listLocalDevices
public java.util.List<Device> listLocalDevices()
List available devices for use without attaching to either Stage or Broadcast session.- Returns:
- a list of
Device
s representing attached devices such as cameras, microphones, and screen recording sessions. Note that if theManifest.permission.CAMERA
permission is not granted, no cameras will be returned. Similarly if theManifest.permission.RECORD_AUDIO
permission is not granted, no microphones will be returned.
-
createImageInputSource
public CustomImageSource createImageInputSource(BroadcastConfiguration.Vec2 size)
Create an image input for a custom source. This should only be used if you intend to generate and feed image data to the SDK manually.- Returns:
- A
SurfaceSource
that represents as Surface and can receive your samples. - Throws:
BroadcastException
- if creating the image input source failed
-
createAudioInputSource
public CustomAudioSource createAudioInputSource(int channels, BroadcastConfiguration.AudioSampleRate sampleRate, AudioDevice.Format format)
Create an audio input for a custom source. This should only be used if you intend to generate and feed pcm audio data to the SDK manually.- Parameters:
channels
- The number of audio channels.sampleRate
- The sampling rate for the PCM audio.format
- The sample format.- Returns:
- An
AudioDevice
that represents as Surface and can receive your samples. - Throws:
BroadcastException
- if the parameters are invalid
-
-