byteplus_rtc 3.56.2 byteplus_rtc: ^3.56.2 copied to clipboard
This Flutter plugin provides rtc sdk native APIs for you to implement real-time audio & video communication functions in your application.
3.56.2 #
Fixed a few bugs, including the frame rate reduction during video capture and encoding that occurred when the video effect feature was enabled on some device models.
3.56.1 #
Starting from this version, RTC SDK for iOS no longer supports the armv7 architecture, as required by the Apple App Store. The minimum compatible version is iOS 11.
New #
- Starting from this version, some features have been separated from the SDK and encapsulated into independent extensions. A new callback onExtensionAccessError is added, which allows you to locate the extension that you failed to access.
- You can set room-related attributes and other extra information with the new API setRoomExtraInfo.
- Adds a callback for user visibility setting results. See onUserVisibilityChanged.
- Adds a new API setLogConfig, with which you can set the local log parameters, including the logging level, directory, and the maximum cache space that can be used.
- You can disable the automatic face exposure feature and the dynamic capture frame rate feature with the new APIs enableCameraAutoExposureFaceMode and setCameraAdaptiveMinimumFrameRate.
- Cellular enhanced communication is supported with the new API setCellularEnhancement.
- Supports setting local proxies and other extra information with the new API setLocalProxy
- Adds new parameters which you can set while mixing streams on the server side.
- Supports setting PayLoadType when sending SEI during stream mixing and pushing, and supports receiving SEI information when using specific players as the receiving end. See the APIs below:
- Supports SEI content control. In previous versions, the stream contains all the SEI information by default. While in the new version, you can choose whether to send volume indication SEI only, which significantly reduces performance consumption in scenarios where high-frequency volume information needs to be sent. See the APIs below:
- Supports setting the rotation angle of the remote video frame to be rendered with the new parameter
renderRotation
in RTCSurfaceView. - Adds "clarity" to the basic beauty effects. This sub-item requires integration with the Effects SDK v4.4.2+. The default values for each beauty mode's intensity are adjusted as follows: 0.7 for brightening, 0.8 for smoothing, 0.5 for sharpening, and 0.7 for clarity. See enableEffectBeauty for the detailed description.
Enhanced #
- Optimization for big conferences. After the Audio Selection is enabled, the publisher can choose to skip the Audio Selection. It is suitable for scenarios where the speeches of the specified users are expected to be heard all the time, such as the rooms with a host. For each appId, you should decide whether to enable Audio Selection instead of which room mode. Refer to Audio Selection and the new API setAudioSelectionConfig.
- Optimizes the spatial audio feature. Supports updating the position and orientation of the local user and a certain remote user in the rectangular coordinate system in the current room, as well as removing one or all remote users from the spatial audio effect. See the APIs:
- updatePosition and updateSelfOrientation are deprecated and replaced by the new API updateSelfPosition.
- updateListenerPosition and updateListenerOrientation are deprecated and replaced by the new API updateRemotePosition.
- Adds removeRemotePosition.
- Adds removeAllRemotePosition.
- For an Android App using RTC SDK to capture video internally, if it goes to the background for a duration exceeding one minute and then returns to the foreground, RTC will automatically resume video capture without any additional operations.
- You can get the pitch info of the local voice when you enable local audio property report. See the APIs below:
- Call enableAudioPropertiesReport to enable audio property report.
- Get local audio property report through onLocalAudioPropertiesReport.
- Optimizes the error message returned when capturing snapshots on the client side. See the APIs below:
Changelog #
Header file change #
Enums/classes related to pushing stream to CDN are moved to "bytertc_cdn_stream.dart", which you should import into your project if relevant feature are used.
API change #
- This version adds a return value for all APIs, through which the failed API call can be clearly identified and the cause of the failure can be located. For the meaning of the specific return value, refer to each API comment.
- The data types of the parameters of feedback are changed.
- The APIs used in the function of pushing mixed streams to CDN are renamed with the behavior logic remaining unchanged:
- startLiveTranscoding is deprecated and replaced by startPushMixedStreamToCDN.
- stopLiveTranscoding is deprecated and replaced by stopPushStreamToCDN.
- updateLiveTranscoding is deprecated and replaced by updatePushMixedStreamToCDN.
- Splits the audio mixing class into audio effect management class and music management class. Generally, for audio effect less than 20 seconds, use audio effect class; for audio files longer than 20 seconds or PCM data, use music management class. See the APIs:
- AudioMixingManager is deprecated and replaced by getAudioEffectPlayer and getMediaPlayer.
- The behavior of the API startAudioRecording changes. In previous versions, this API only supports calling after joining a room. Starting from this version, this API can be called both before and after joining the room. If called before joining the room, the recording task will not automatically stop after leaving the room. If called after joining the room, the recording task will automatically stop after leaving the room.
Callback change #
- Adds an input parameter for the onLogout callback to describe the reason why the user logs out. See LogoutReason for the details.
Class/Enum change #
- The
overScreenPublishLimit
andoverVideoPublishLimit
in ErrorCode is deprecated and replaced byoverStreamPublishLimit
. - Adds new values in UserMessageSendResult for message sending failure from the client to the app server:
e2bsReturnFailed
: The app server failed to receive the message sent from the client.e2bsReturnFailed
: The app server received the message sent by the client, but failed to response.
3.51.1 #
New #
captureDetectHowling
warning is added into MediaDeviceWarning, which will be triggered in the following circumstances:- Howling is detected in room modes that do not support howling suppression.
- Unsuppressed howling is detected in room modes that support howling suppression.
- From iPadOS, you can use Stage Manger to organize Apps and Windows. If your App is not in the center, you can get informed by onVideoDeviceStateChanged. Refer to Resume Audio/Video Call.
- Set a static picture as a replacement for the locally captured video stream by calling the new API setDummyCaptureImagePath.
- Switch the BlueTooth communication mode between the iOS device and earphones when RTC works on media scenarios by calling the new API setBluetoothMode.
- In multi-room scenarios, you can adjust the volume of all users in one room at once with the new API setRemoteRoomAudioPlaybackVolume.
- By calling the new API setNoAttenuationFlags, you can set a team to the mode that the teammates can talk without attenuation, despite the range audio feature being enabled.
- Supports detecting background music during the call and protecting the sound quality of the music. Please contact the technical support team if you need this feature.
- Adds onPublishPrivilegeTokenWillExpire and onSubscribePrivilegeTokenWillExpire callbacks, which will be triggered when the publishing/subscribing privilege of your Token is about to expire. After receiving the callback, you must re-acquire and update the relevant privileges of the Token to ensure normal audio/video calls. Contact the technical support team if you need this feature.
- Supports some new voice reverb types. For all the types, see VoiceReverbType.
- Supports setting the equalization and reverb effect of the locally captured audio. See the APIs below:
- Supports stopping, pausing, and resuming playback of all audio files. See the APIs below:
- Supports examining the echo-cancellation ability of local audio devices before or during an RTC call. See the APIs below:
- Adds a new feature allowing users to magnify the view of local videos and then move around. We recommend this feature as the method for local video control by considering the diversity of cameras on all the devices and the difficulties of adapting them all. See the APIs below:
- Automatically adapt the Ambient Noise Suppression(ANS) algorithm according to the business scenario selected when entering the room by calling the new API setAnsMode. You can also set the ANS mode manually during the call.
- Adjust the volume of the remote public audio for local playback by calling the new API setPublicStreamAudioPlaybackVolume.
Enhanced #
-
When getting local and remote volume information by calling enableAudioPropertiesReport, you can make the volume curve smoother with "smooth" and get information about locally mixing audio with "audio_report_mode".
-
sendSEIMessage includes a new parameter "SEICountPerFrame". When you send multiple SEI messages in 1 frame, they will be sent together in the next frame.
Changelog #
Header file change #
The original header file "bytertc_common_defines.dart" is split into "bytertc_media_defines.dart" and "bytertc_rts_defines.dart", both of which you should import into your project if needed.
API change #
- registerFaceDetectionObserver is replaced by enableFaceDetection and disableFaceDetection, decoupling face detection and video effects to improve usability.
- The parameter type of setScreenVideoEncoderConfig changes from "VideoEncoderConfig" to "ScreenVideoEncoderConfig".
- Video effect related APIs are moved from
RTCVideo
class toRTCVideoEffect
class:- initCVResource replaces checkVideoEffectLicense and setVideoEffectAlgoModelPath;
- enableVideoEffect and disableVideoEffect replace enableVideoEffect;
- setEffectNodes replaces setVideoEffectNodes;
- updateEffectNode replaces updateVideoEffectNode;
- enableVirtualBackground and disableVirtualBackground replace setBackgroundSticker;
- setColorFilter replaces setVideoEffectColorFilter;
- setColorFilterIntensity replaces setVideoEffectColorFilterIntensity;
- Return value type change:
- The return type of the following APIs is changed to "int", the values of which are listed in ReturnStatus:
updateToken
,setRemoteVideoConfig
,subscribeStream
,unsubscribeStream
,subscribeScreen
,unsubscribeScreen
,setVoiceChangerType
,setVoiceReverbType
; - The return type of the following APIs is changed to "void":
setMultiDeviceAVSync
,setLocalVideoMirrorType
,setVideoRotationMode
,setAudioRoute
,enableSimulcastMode
,setPublishFallbackOption
,setSubscribeFallbackOption
.
- The return type of the following APIs is changed to "int", the values of which are listed in ReturnStatus:
getSdkVersion
is changed to getSDKVersion.- The behavior of setAudioRoute changed. You can use devices with media mode only as the audio route device.
Callback change #
- onPublicStreamSEIMessageReceived includes a new parameter "sourceType".
- The
RTCRangeAudioObserver
callback class is deprecated. Before this version, When you use range audio with manual audio subscription, you must set the attenuation index based on the return value of "RTCRangeAudioObserver". From this version, you can set the attenuation model by calling setAttenuationModel. - onRemoteAudioStateChanged and onRemoteVideoStateChanged are deprecated with no alternatives.
- onLocalAudioStateChanged and onLocalVideoStateChanged are replaced by onAudioDeviceStateChanged and onVideoDeviceStateChanged.
Class/Enum change #
- FaceDetectionResult includes a new member "frameTimestampUs".
- UserMessageSendResult includes a new value "exceedQPS".
- RoomMessageSendResult includes a new value "exceedQPS".
- The type of the variables in Position representing spatial coordinates in spatial audio functions changes from "int" to "double".
- The configuration of the default mode "communication" in RoomProfile changes from corresponding to "chatRoom" to corresponding to "meeting".
- The type of the
errorCode
in onPushPublicStreamResult and onPlayPublicStreamResult changes from "int" to PublicStreamErrorCode. - The value "unknown" in AudioRoute is changed to "routeDefault".
- AudioScenario The mapping of audio routing and publish-subscribe state to volume type has changed. See the documentation of the data structure for the latest mapping.
3.45.2 #
New #
- AudioScenario includes "highQualityChat" mode.
- Get the actual mixing length of the audio file by calling the new API getAudioMixingPlaybackDuration, regardless of pausing, jumping, changing speed, and stuck.
- With the new pair of APIs subscribeAllStreams and unsubscribeAllStreams, you can subscribe or unsubscribe to all users by one call. We recommend using them in the scenario that requires a fixed number of publishers.
- Set the default volume during audio mixing on mobile with the new API setAllAudioMixingVolume.
- Get the snapshot of the local/remote screen on the client with the new APIS takeLocalSnapshot and takeRemoteSnapshot.
- NetworkQuality includes a new value "down" which can reflect the disconnection status of the local network.
3.45.1 #
- Fixed a few bugs.
3.44.1 #
- Flutter for BytePlusRTC SDK release.