tencent cloud

Feedback

TXDeviceManager

Last updated: 2024-08-22 14:23:52
    Copyright (c) 2021 Tencent. All rights reserved.
    
    Module: audio/video device management module
    
    Description: manages audio/video devices such as camera, mic, and speaker.
    
    TXDeviceManager

    TXDeviceObserver

    FuncList
    DESC
    The status of a local device changed (for desktop OS only)

    TXDeviceManager

    FuncList
    DESC
    Querying whether the front camera is being used
    Switching to the front/rear camera (for mobile OS)
    Querying whether the current camera supports zooming (for mobile OS)
    Getting the maximum zoom ratio of the camera (for mobile OS)
    Setting the camera zoom ratio (for mobile OS)
    Querying whether automatic face detection is supported (for mobile OS)
    Enabling auto focus (for mobile OS)
    Adjusting the focus (for mobile OS)
    Querying whether flash is supported (for mobile OS)
    Enabling/Disabling flash, i.e., the torch mode (for mobile OS)
    Setting the audio route (for mobile OS)
    Set the exposure parameters of the camera, ranging from - 1 to 1
    Getting the device list (for desktop OS)
    Setting the device to use (for desktop OS)
    Getting the device currently in use (for desktop OS)
    Setting the volume of the current device (for desktop OS)
    Getting the volume of the current device (for desktop OS)
    Muting the current device (for desktop OS)
    Querying whether the current device is muted (for desktop OS)
    Set the audio device used by SDK to follow the system default device (for desktop OS)
    Starting camera testing (for desktop OS)
    Ending camera testing (for desktop OS)
    Starting mic testing (for desktop OS)
    Starting mic testing (for desktop OS)
    Ending mic testing (for desktop OS)
    Starting speaker testing (for desktop OS)
    Ending speaker testing (for desktop OS)
    set onDeviceChanged callback (for Mac)
    Set camera acquisition preferences
    Setting the system volume type (for mobile OS)

    StructType

    FuncList
    DESC
    Camera acquisition parameters
    Audio/Video device information (for desktop OS)

    EnumType

    EnumType
    DESC
    System volume type
    Audio route (the route via which audio is played)
    Device type (for desktop OS)
    Device operation
    Camera acquisition preferences

    onDeviceChanged:type:state:

    onDeviceChanged:type:state:
    - (void)onDeviceChanged:
    (NSString*)deviceId
    type:
    (TXMediaDeviceType)mediaType
    state:
    (TXMediaDeviceState)mediaState

    The status of a local device changed (for desktop OS only)

    The SDK returns this callback when a local device (camera, mic, or speaker) is connected or disconnected.
    Param
    DESC
    deviceId
    Device ID
    state
    Device status. 0 : connected; 1 : disconnected; 2 : started
    type
    Device type

    isFrontCamera

    isFrontCamera

    Querying whether the front camera is being used

    switchCamera:

    switchCamera:
    - (NSInteger)switchCamera:
    (BOOL)frontCamera

    Switching to the front/rear camera (for mobile OS)

    isCameraZoomSupported

    isCameraZoomSupported

    Querying whether the current camera supports zooming (for mobile OS)

    getCameraZoomMaxRatio

    getCameraZoomMaxRatio

    Getting the maximum zoom ratio of the camera (for mobile OS)

    setCameraZoomRatio:

    setCameraZoomRatio:
    - (NSInteger)setCameraZoomRatio:
    (CGFloat)zoomRatio

    Setting the camera zoom ratio (for mobile OS)

    Param
    DESC
    zoomRatio
    Value range: 1-5. 1 indicates the widest angle of view (original), and 5 the narrowest angle of view (zoomed in).The maximum value is recommended to be 5. If the value exceeds 5, the video will become blurred.

    isAutoFocusEnabled

    isAutoFocusEnabled

    Querying whether automatic face detection is supported (for mobile OS)

    enableCameraAutoFocus:

    enableCameraAutoFocus:
    - (NSInteger)enableCameraAutoFocus:
    (BOOL)enabled

    Enabling auto focus (for mobile OS)

    After auto focus is enabled, the camera will automatically detect and always focus on faces.

    setCameraFocusPosition:

    setCameraFocusPosition:
    - (NSInteger)setCameraFocusPosition:
    (CGPoint)position

    Adjusting the focus (for mobile OS)

    This API can be used to achieve the following:
    1. A user can tap on the camera preview.
    2. A rectangle will appear where the user taps, indicating the spot the camera will focus on.
    3. The user passes the coordinates of the spot to the SDK using this API, and the SDK will instruct the camera to focus as required.
    Param
    DESC
    position
    The spot to focus on. Pass in the coordinates of the spot you want to focus on.
    Note
    Before using this API, you must first disable auto focus using enableCameraAutoFocus.

    Return Desc:

    0: operation successful; negative number: operation failed.

    isCameraTorchSupported

    isCameraTorchSupported

    Querying whether flash is supported (for mobile OS)

    enableCameraTorch:

    enableCameraTorch:
    - (NSInteger)enableCameraTorch:
    (BOOL)enabled

    Enabling/Disabling flash, i.e., the torch mode (for mobile OS)

    setAudioRoute:

    setAudioRoute:
    - (NSInteger)setAudioRoute:
    (TXAudioRoute)route

    Setting the audio route (for mobile OS)

    A mobile phone has two audio playback devices: the receiver at the top and the speaker at the bottom.
    If the audio route is set to the receiver, the volume is relatively low, and audio can be heard only when the phone is put near the ear. This mode has a high level of privacy and is suitable for answering calls.
    If the audio route is set to the speaker, the volume is relatively high, and there is no need to put the phone near the ear. This mode enables the "hands-free" feature.

    setExposureCompensation:

    setExposureCompensation:
    - (NSInteger)setExposureCompensation:
    (CGFloat)value

    Set the exposure parameters of the camera, ranging from - 1 to 1

    getDevicesList:

    getDevicesList:
    - (NSArray<TXMediaDeviceInfo *> * _Nullable)getDevicesList:
    (TXMediaDeviceType)type

    Getting the device list (for desktop OS)

    Param
    DESC
    type
    Device type. Set it to the type of device you want to get. For details, please see the definition of TXMediaDeviceType .
    Note
    To ensure that the SDK can manage the lifecycle of the ITXDeviceCollection object, after using this API, please call the release method to release the resources.
    Do not use delete to release the Collection object returned as deleting the ITXDeviceCollection* pointer will cause crash.
    The valid values of type are TXMediaDeviceTypeMic , TXMediaDeviceTypeSpeaker , and TXMediaDeviceTypeCamera .
    This API can be used only on macOS and Windows.

    setCurrentDevice:deviceId:

    setCurrentDevice:deviceId:
    - (NSInteger)setCurrentDevice:
    (TXMediaDeviceType)type
    deviceId:
    (NSString *)deviceId

    Setting the device to use (for desktop OS)

    Param
    DESC
    deviceId
    Device ID. You can get the ID of a device using the getDevicesList API.
    type
    Device type. For details, please see the definition of TXMediaDeviceType .

    Return Desc:

    0: operation successful; negative number: operation failed.

    getCurrentDevice:

    getCurrentDevice:
    - (TXMediaDeviceInfo * _Nullable)getCurrentDevice:
    (TXMediaDeviceType)type

    Getting the device currently in use (for desktop OS)

    setCurrentDeviceVolume:deviceType:

    setCurrentDeviceVolume:deviceType:
    - (NSInteger)setCurrentDeviceVolume:
    (NSInteger)volume
    deviceType:
    (TXMediaDeviceType)type

    Setting the volume of the current device (for desktop OS)

    This API is used to set the capturing volume of the mic or playback volume of the speaker, but not the volume of the camera.
    Param
    DESC
    volume
    Volume. Value range: 0-100; default: 100

    getCurrentDeviceVolume:

    getCurrentDeviceVolume:
    - (NSInteger)getCurrentDeviceVolume:
    (TXMediaDeviceType)type

    Getting the volume of the current device (for desktop OS)

    This API is used to get the capturing volume of the mic or playback volume of the speaker, but not the volume of the camera.

    setCurrentDeviceMute:deviceType:

    setCurrentDeviceMute:deviceType:
    - (NSInteger)setCurrentDeviceMute:
    (BOOL)mute
    deviceType:
    (TXMediaDeviceType)type

    Muting the current device (for desktop OS)

    This API is used to mute the mic or speaker, but not the camera.

    getCurrentDeviceMute:

    getCurrentDeviceMute:
    - (BOOL)getCurrentDeviceMute:
    (TXMediaDeviceType)type

    Querying whether the current device is muted (for desktop OS)

    This API is used to query whether the mic or speaker is muted. Camera muting is not supported.

    enableFollowingDefaultAudioDevice:enable:

    enableFollowingDefaultAudioDevice:enable:
    - (NSInteger)enableFollowingDefaultAudioDevice:
    (TXMediaDeviceType)type
    enable:
    (BOOL)enable

    Set the audio device used by SDK to follow the system default device (for desktop OS)

    This API is used to set the microphone and speaker types. Camera following the system default device is not supported.
    Param
    DESC
    enable
    Whether to follow the system default audio device.
    true: following. When the default audio device of the system is changed or new audio device is plugged in, the SDK immediately switches the audio device.
    false:not following. When the default audio device of the system is changed or new audio device is plugged in, the SDK doesn't switch the audio device.
    type
    Device type. For details, please see the definition of TXMediaDeviceType .

    startCameraDeviceTest:

    startCameraDeviceTest:
    - (NSInteger)startCameraDeviceTest:
    (NSView *)view

    Starting camera testing (for desktop OS)

    Note
    You can use the setCurrentDevice API to switch between cameras during testing.

    stopCameraDeviceTest

    stopCameraDeviceTest

    Ending camera testing (for desktop OS)

    startMicDeviceTest:

    startMicDeviceTest:
    - (NSInteger)startMicDeviceTest:
    (NSInteger)interval

    Starting mic testing (for desktop OS)

    This API is used to test whether the mic functions properly. The mic volume detected (value range: 0-100) is returned via a callback.
    Param
    DESC
    interval
    Interval of volume callbacks
    Note
    When this interface is called, the sound recorded by the microphone will be played back to the speakers by default.

    startMicDeviceTest:playback:

    startMicDeviceTest:playback:
    - (NSInteger)startMicDeviceTest:
    (NSInteger)interval
    playback:
    (BOOL)playback

    Starting mic testing (for desktop OS)

    This API is used to test whether the mic functions properly. The mic volume detected (value range: 0-100) is returned via a callback.
    Param
    DESC
    interval
    Interval of volume callbacks
    playback
    Whether to play back the microphone sound. The user will hear his own sound when testing the microphone if playback is true.

    stopMicDeviceTest

    stopMicDeviceTest

    Ending mic testing (for desktop OS)

    startSpeakerDeviceTest:

    startSpeakerDeviceTest:
    - (NSInteger)startSpeakerDeviceTest:
    (NSString *)audioFilePath

    Starting speaker testing (for desktop OS)

    This API is used to test whether the audio playback device functions properly by playing a specified audio file. If users can hear audio during testing, the device functions properly.
    Param
    DESC
    filePath
    Path of the audio file

    stopSpeakerDeviceTest

    stopSpeakerDeviceTest

    Ending speaker testing (for desktop OS)

    setObserver:

    setObserver:
    - (void)setObserver:
    (nullable id<TXDeviceObserver>) observer

    set onDeviceChanged callback (for Mac)

    setCameraCapturerParam:

    setCameraCapturerParam:
    - (void)setCameraCapturerParam:
    (TXCameraCaptureParam *)params

    Set camera acquisition preferences

    setSystemVolumeType:

    setSystemVolumeType:
    - (NSInteger)setSystemVolumeType:
    (TXSystemVolumeType)type

    Setting the system volume type (for mobile OS)

    @deprecated This API is not recommended after v9.5. Please use the startLocalAudio(quality) API in TRTCCloud instead, which param quality is used to decide audio quality.

    TXSystemVolumeType(Deprecated)

    TXSystemVolumeType(Deprecated)

    System volume type

    Enum
    Value
    DESC
    TXSystemVolumeTypeAuto
    0
    Auto
    TXSystemVolumeTypeMedia
    1
    Media volume
    TXSystemVolumeTypeVOIP
    2
    Call volume

    TXAudioRoute

    TXAudioRoute

    Audio route (the route via which audio is played)

    Audio route is the route (speaker or receiver) via which audio is played. It applies only to mobile devices such as mobile phones.
    A mobile phone has two speakers: one at the top (receiver) and the other the bottom.
    If the audio route is set to the receiver, the volume is relatively low, and audio can be heard only when the phone is put near the ear. This mode has a high level of privacy and is suitable for answering calls.
    If the audio route is set to the speaker, the volume is relatively high, and there is no need to put the phone near the ear. This mode enables the "hands-free" feature.
    Enum
    Value
    DESC
    TXAudioRouteSpeakerphone
    0
    Speakerphone: the speaker at the bottom is used for playback (hands-free). With relatively high volume, it is used to play music out loud.
    TXAudioRouteEarpiece
    1
    Earpiece: the receiver at the top is used for playback. With relatively low volume, it is suitable for call scenarios that require privacy.

    TXMediaDeviceType

    TXMediaDeviceType

    Device type (for desktop OS)

    This enumerated type defines three types of audio/video devices, namely camera, mic and speaker, so that you can use the same device management API to manage three types of devices.
    Enum
    Value
    DESC
    TXMediaDeviceTypeUnknown
    -1
    undefined device type
    TXMediaDeviceTypeAudioInput
    0
    microphone
    TXMediaDeviceTypeAudioOutput
    1
    speaker or earpiece
    TXMediaDeviceTypeVideoCamera
    2
    camera

    TXMediaDeviceState

    TXMediaDeviceState

    Device operation

    This enumerated value is used to notify the status change of the local device onDeviceChanged.
    Enum
    Value
    DESC
    TXMediaDeviceStateAdd
    0
    The device has been plugged in
    TXMediaDeviceStateRemove
    1
    The device has been removed
    TXMediaDeviceStateActive
    2
    The device has been enabled
    TXMediaDefaultDeviceChanged
    3
    system default device changed

    TXCameraCaptureMode

    TXCameraCaptureMode

    Camera acquisition preferences

    This enum is used to set camera acquisition parameters.
    Enum
    Value
    DESC
    TXCameraResolutionStrategyAuto
    0
    Auto adjustment of camera capture parameters.
    SDK selects the appropriate camera output parameters according to the actual acquisition device performance and network situation, and maintains a balance between device performance and video preview quality.
    TXCameraResolutionStrategyPerformance
    Not Defined
    Give priority to equipment performance.
    SDK selects the closest camera output parameters according to the user's encoder resolution and frame rate, so as to ensure the performance of the device.
    TXCameraResolutionStrategyHighQuality
    Not Defined
    Give priority to the quality of video preview.
    SDK selects higher camera output parameters to improve the quality of preview video. In this case, it will consume more CPU and memory to do video preprocessing.
    TXCameraCaptureManual
    Not Defined
    Allows the user to set the width and height of the video captured by the local camera.

    TXCameraCaptureParam

    TXCameraCaptureParam

    Camera acquisition parameters

    This setting determines the quality of the local preview image.
    EnumType
    DESC
    height
    Field description: height of acquired image
    mode
    Field description: camera acquisition preferences,please see TXCameraCaptureMode
    width
    Field description: width of acquired image

    TXMediaDeviceInfo

    TXMediaDeviceInfo

    Audio/Video device information (for desktop OS)

    This structure describes key information (such as device ID and device name) of an audio/video device, so that users can choose on the UI the device to use.
    EnumType
    DESC
    deviceId
    device id (UTF-8)
    deviceName
    device name (UTF-8)
    deviceProperties
    device properties
    type
    device type
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support