Integration Issues
Updated
Build, package, permissions, and SDK setup questions.
79 questions
Why can't I get the device ID on Chrome 81?On Chrome 81, the deviceId field that the getDevices method returns is empty.ReadHow can I set the page recording output resolution in mobile web page mode?When you enable the mobile web page mode and perform page recording (mobile is set to true), Agora recommends that you set the width and height of the output video according to the following video resolution table:ReadHow can I choose the video resolution, frame rate and bitrate?Video parameters vary on a case-by-case basis. For example:ReadWhy is the camera light still on after I disable my video on the Web?When you use the Agora Video SDK Web SDK to disable local video through muteVideo, the camera light stays on.ReadWhy can't I play the audio file using startAudioMixing or playEffect on Android 9?Cannot play an mp3, mp4, or any other music format using startAudioMixing or playEffect on Android 9.ReadWhy does the audio routing change after I switch to another app on an Android device?When using an app integrated with an Agora SDK (an "SDK app") for real-time communication on an Android device, if you switch to another app that has audio input and/or output and return to the SDK app, the audio routing of the SDK changes.ReadWhat are the differences between the Message Notification Service and the query Method?You can monitor the status of the cloud recording service either through the query method or by the Message Notification Service, to take action when required. Both options have pros and cons.ReadHow can I generate a token with both RTC and Signaling privileges?Agora provides source code in several languages to generate tokens with both RTC and Signaling privileges. Refer to the following samples to generate tokens on your own server:ReadHow can I enable multitasking camera capture on iOS?Starting with iOS 16, the system allows apps to continue accessing the camera in multitasking mode. This means that camera capture can continue in layouts such as split view, slide over, and picture-in-picture.ReadHow do I add the permissions needed for real-time interaction to my Unreal Engine project?In order to implement real-time interactive features on different target platforms, you need to add camera, microphone, and other permissions to your Unreal Engine project. Depending on the target platform, you can refer to this article forReadWhy do crashes occur on Unity SDK v3.0.1 or earlier?When using the Unity SDK v3.0.1 or earlier, blank screen or even crashes occur if access to the microphone or camera is not granted. This issue occur on various platfroms including macOS and Android.ReadWhy don't music files automatically resume playing after hanging up a system call on an Android device?The startAudioMixing method is called to play a music file on an Android device. During the playback process, the system's built-in phone software is used to answer or make a call. After hanging up the phone, the music file does not automatReadWhat are the differences between setEnabled and setMuted?Both Web SDK 4.x and 3.x provide APIs for controlling the collection and sending of local audio and video. The differences between these APIs are detailed in the table below. You cannot call setEnabled and setMuted at the same time.ReadWhy do I see a prompt to find local network devices when launching an iOS app integrated with the Agora Signaling SDK?After users upgrade their iOS devices to iOS 14.0 and use an app that integrates the Agora Signaling SDK for iOS, users see a prompt for finding local network devices. The following picture shows the pop-up prompt:ReadHow to package a Windows installation on macOS?To create a Smart Classroom Windows installation package using a Mac, take the following steps:ReadHow to set the output video resolution of the web page recording mode on the on mobile devices?When you enable the mobile web mode (mobile is true), and start web page recording. Agora recommends that you set the width and height of the output video according to the following video resolution:ReadIn Signaling SDK, does the call frequency limit refer to the limit of one client instance?In Signaling SDK, the call frequency limit refers to the limit of one client instance.ReadHow can I set user properties and classroom properties?Flexible Classroom supports custom user properties and classroom properties. The property consists of a property name and a property value. Each property name has only one property value.ReadWhy do I see a prompt to find local network devices when launching an iOS app integrated with the Agora Video SDK?After users upgrade their iOS devices to iOS 14.0, and use an app that integrates the Agora Video SDK for iOS for the first time, users see a prompt for finding local network devices. The following picture shows the pop-up prompt:ReadHow can I solve channel-related issues?No, users will not automatically leave a channel unless they do so by themselves, for example, when the application calls leaveChannel.ReadWhat should I do if the class recording fails?If recording fails, take the following steps to troubleshoot the problem:ReadWhy can't I upload courseware?If you receive the 403 Forbidden error when uploading courseware, please check whether the whiteboard function has been configured correctly and make sure that Agora can access your cloud storage space.ReadHow do I set the video profile of the recorded video?This article has been moved to Set the Video Profile.ReadHow do I use co-host token authentication?Co-host authentication enables you to authenticate whether a user has the privilege to publish streams in a live streaming channel. This feature helps ensure that only authorized users publish streams and prevents illegal users from exploitReadHow to deal with token-related error codes?When a primary/secondary certificate is enabled for your project, you use dynamic tokens to authenticate users. This page lists token-related error codes and event callbacks you may receive, provides triggering causes and solutions, and helReadWhat is the difference between the in-call volume and the media volume?The in-call volume refers to the volume of voice and video calls, while the media volume refers to the volume at which background music, videos, and audio effects are played. The in-call volume and the media volume are independent from eachReadHow can I switch between the screen-sharing stream and the camera stream?This page introduces three solutions for switching between the screen-sharing stream and the stream captured by the camera in a screen-sharing scenario using the Agora Video SDK for Web.ReadHow can I use string user IDs?Many apps use string usernames. To reduce development costs, Agora has added support for string user IDs. Users can now directly use their string usernames as user accounts to join the Agora channel.ReadWhich media players can play the recorded files?You get different recorded files in different recording modes.ReadWhat's the difference between individual recording mode and composite recording mode?If you want more flexibility in processing the recorded files, choose individual recording mode. For example, in an online classroom, if parents want to see the video of the teacher and their child only, you can use individual recording modReadDoes Agora have reconnection mechanisms?The Agora SDK has reconnection mechanisms when a user drops offline or a process gets killed. This page shows the connection state mechanism of the Agora SDK under these circumstances.ReadHow can I adjust camera exposure and focus?In video applications, adjusting camera exposure and focus is essential for capturing subjects with accurate brightness and sharpness. The Agora RTC SDK offers camera management methods for mobile platforms, enabling users to switch betweenReadHow can I set the log file?The Agora SDK allows you to configure the output log file. All logs generated by the SDK are written to this file.ReadHow can I set the mirror mode?Video SDK provides various interfaces to customize video display effects on local and remote devices during a real-time audio and video call, including the option to enable or disable mirror mode.ReadHow to choose the appropriate cloud storage bucket region and address cross-region upload challenges?Currently, cloud recording supports the following cloud storage vendors:ReadHow to leave a flexible classroom?In Flexible Classroom, the teacher can click Leave Classroom to temporarily exit the session without changing the room status. To officially end the class, follow these steps:ReadWhy does the query method return a 404 after successfully starting cloud recording?The following issues may cause the query method to return a 404 status code after successfully starting cloud recording with the start method:ReadWhen pushing streams to the CDN, what should I do when a disconnection happens?Pushing streams to the CDN refers to the process where a host publishes multiple media streams to the CDN (Content Delivery Network).ReadHow can a host change the role of a remote user?In a live interactive streaming channel, the host can invite an audience to take on the role of co-host, or change role back to audience.ReadHow can I retrieve channel information, such as the channel name and user list?Agora provides server-side RESTful APIs to obtain channel-related information.ReadHow to remove a specific user from a channel?In real-time audio and video interactions, there are often cases where you need to remove a specific user from the channel. Agora offers several solutions tailored to different scenarios:ReadHow can I switch from custom video capture to SDK capture?The Agora Video SDK Native SDK provides both Push and Media IO methods to implement custom video capture. This page describes how to switch from custom video capture to SDK capture.ReadWhat are the common error messages to expect in Web browsers' console logs?After integrating the Agora Web SDK into your web app, you can debug your code using the console log. This document lists the common errors in the console log.ReadWhat is the relationship between the old and new callbacks of Media Push?Agora provides two sets of callbacks for you to monitor Media Push:ReadHow do I get the user's call duration?During a call, a user may join and leave a Video SDK channel for multiple times, and the user's call duration is the actual time when the user is in the channel. You can use the Agora Video SDK or Agora Analytics to get a user's call duratiReadHow can I listen for an audience joining or leaving an interactive live streaming channel?The Agora Video SDK does not provide any callback events that listen for an audience joining or leaving an interactive live streaming channel. However, you can listen for these events using either of the following two approaches:ReadHow do I handle issues when integrating the Signaling SDK and Video/Voice SDK simultaneously?When integrating Signaling SDK version 2.2.0 and above with Video/Voice SDK version 4.5.0 or higher, the following errors may appear in the IDE:ReadHow does an app crash affect cloud recording?If an app integrated with cloud recording crashes, the recording session is not affected. You can continue to use the original resource ID and recording ID to control the recording instance, such as to query recording status or stop recordiReadHow to handle token expiration?After the token expires, you need to call the logout method to log out of the Signaling system. Then use the new token to create a new instance and call the login method to log in to the system again.ReadHow does Flexible Classroom support multiple languages?Flexible Classroom currently supports Chinese, English, and Spanish. If you need to add more languages, find the language-related key value in the specified directory and modify it.ReadHow to deal with Chat-related issues in Flexible Classroom?Check if your Chat permission has been activated. If not, activate it in the Console.ReadHow to set custom user and class attributes?Flexible Classroom supports custom user attributes, classroom attributes, and widget attributes. You can set any classroom attribute according to your business needs, and Flexible Classroom will synchronize it to all terminals.ReadHow to specify a dynamic storage path?When configuring the recording file storage path in the Console through the fileNamePrefix field, you can use built-in variables to specify a dynamic path for storing recording files. When the recording starts, variables are replaced with rReadHow to turn off noise reduction, echo cancellation, and automatic gain control?If your classroom integrates or uses audio mixing or other tools, and you want to turn off noise reduction, echo cancellation, and gain control functions, add the following code to packages/agora-classroom-sdk/src/infra/api/index.tsx:ReadWhat are some common mistakes in integrating and using Flexible Classroom?If you encounter the following errors when running the Flexible Classroom Web project:ReadWhat should I do if a class recording fails?"vendor": 2, "region": 1, //CN_Shanghai endpoint:https://agora-recording.oss-cn-shanghai.aliyuncs.comReadHow can I resolve common development issues on Electron?This page outlines common challenges encountered throughout the integration, compilation, execution, and packaging phases of Electron SDK app development. It offers potential solutions to address these issues effectively.ReadWhat should I do if I encounter "Please obtain the RESTful API ID and key first" when configuring aPaaS in Agora Console?If you encounter the "Please obtain the RESTful API ID and key first" error message when configuring aPaaS in the Console, please take the following steps:ReadHow can I avoid being frequency limited when calling Agora Server RESTful APIs?When the request of an Agora Server RESTful API exceeds its call frequency limit, the API returns the HTTP status code 429, indicating that you have made too many requests in a specified amount of time. The following suggestions can help yoReadWhy do errors occur when calling the Stream.init method?The following are common errors when initializing the stream:ReadWhy do errors occur when compiling the Agora Signaling Linux Java SDK?The following error occurs when compiling the Agora Signaling Linux Java SDK in Linux:ReadWhat are the classroom states of Flexible Classroom?Flexible Classroom has the following classroom states:ReadHow can I determine whether a call is an audio call or a video call?In real-time audio or video communication, you can use the Agora Signaling SDK or the Agora Video SDK to determine whether an incoming or ongoing call is an audio call or a video call.ReadWhy can't I hear audio in stereo when playing a stereo file?When calling startAudioMixing or playEffect to play a stereo file, the user might encounter the issue of not being able to hear audio in stereo.ReadHow can I solve Recording integration issues?Reason: The system environment cannot find the librecording.so file. Solution: Check if the java demo is compiled and the library file is generated, and then, check and configure the path of the library file. For example, on Linux, if the pReadWhat can I do if I get a pop-up warning saying 'the framework cannot be opened' when compiling an Xcode project?On macOS 11.6 or later, when using Xcode to integrate the Agora Voice or Video SDKs with version 3.6.2 or later, you can encounter a pop-up warning when your project is compiled or running that says "'library_name.framework' cannot be openeReadHow to enable the video enhancement extensions?Video SDK v4.x provides video enhancement extensions for beautification, underexposed video enhancement, color enhancement, and video denoising.ReadHow can I enable image enhancement?During a video call or live streaming, users often want to improve their on-screen appearance, which can help improve their confidence. The Agora Video SDK provides APIs to help you easily implement basic image enhancement. Users can enableReadHow to resolve Xcode project compilation failure due to missing development team configuration information?When deploying the Xcode project to an iOS device for debugging, the following error occurs:ReadWhy does an iOS app developed using Unity 4.x SDK report an error when uploaded to the App Store?When you package and upload an app developed using Unity 4.x SDK directly to the App Store, you may receive the following error message:ReadWhat are the differences between the COMMUNICATION and LIVE_BROADCASTING profiles?To apply optimization algorithms for different real-time engagement scenarios, Agora provides a setChannelProfile method for the Video SDK channel. You can use this method to set the channel profile as either CHANNELPROFILECOMMUNICATION orReadHow do I control recording sessions in the command-line interface?If you use the automatic mode (default), the recording starts automatically when a user joins the channel. In this mode, you cannot pause the recording.ReadHow to handle errors when running the pod install command?When running pod install, the following error occurs:ReadWhy are there no recorded files in the cloud storage?If you cannot find any recorded files in the cloud storage after a cloud recording session, check if any of the following situations occurred:ReadHow can I get the URL of the M3U8 file?The URL of the M3U8 file consists of the domain of your cloud storage and the filename. You can copy the URL in your cloud storage.ReadHow can I reduce the app size after integrating the Video SDK Native SDK?This article describes how to reduce the app size after integrating the Video SDK Native SDK.ReadHow can I stop cloud recording?You can call the stop method to leave the channel and stop recording.ReadHow to end a class?In Flexible Classroom, the teacher clicks Leave Classroom to leave temporarily, which will not change the classroomroom state. To end the class, refer to the following steps:ReadWhy are dynamic libraries preferred over static libraries in the Video SDK?Static libraries and Dynamic Link Libraries (DLL) are both used for organizing and sharing code in programming. In earlier versions, the Video SDK utilized static libraries on certain platforms. However, there are several drawbacks associatRead
