You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Nov 18, 2020. It is now read-only.
Background
Our app uses the chatRoomGaming Audio Profile in order to filter out background game sounds and other noises from the chat.
Currently, we want a method of recording the local user's voice (and only the local user's voice) when they are on a call. While we could obviously do so by tapping the unprocessed audio from iOS, we want to record the Agora-processed version of the local user's microphone audio that used Agora's chatRoomGaming audio profile filters.
In other words, we imagine the flow to be like this:
Unprocessed Mic Audio ----------(Agora Processing with profile) -------------> Processed Mic Audio (we want this) ---------> Agora Servers
I looked into the AudioFrameObserver api. In particular the onRecordAudioFrame function should have done the trick.
However, there is (what I believe to be) a bug: because I called setAudioProfile(.musicStandardStereo, scenario: .chatRoomGaming), the recorded voice is extremely distorted. It is a bug because if I never called the setAudioProfile command, the recorded audio is completely fine. In fact, if I change the setAudioProfile call even slightly, to setAudioProfile(**.speechStandard**, scenario: .chatRoomGaming), the recorded audio is fine as well.
The thing is, I can't not call setAudioProfile, since not calling it would mean I no longer benefit from the .chatRoomgGaming audio profile's background noise suppression on my Agora calls.
Sample Audio File.
In the following file, I recorded myself saying the words "testing, testing, testing", and this was the result: IMG_1513.mp4.zip)
Smartphone (please complete the following information):
Device: any iPhone
OS: iOS 13.6
Version: Agora iOS 3.0.1.1
The text was updated successfully, but these errors were encountered:
In summary: Check out https://github.com/winstondu/Agora-RecordFrame-Bug. This project lightly modifies @CavanSu 's example code to add voice recording functionality, in order to demonstrate the issue I am talking about.
Background
Our app uses the
chatRoomGaming
Audio Profile in order to filter out background game sounds and other noises from the chat.Currently, we want a method of recording the local user's voice (and only the local user's voice) when they are on a call. While we could obviously do so by tapping the unprocessed audio from iOS, we want to record the Agora-processed version of the local user's microphone audio that used Agora's
chatRoomGaming
audio profile filters.In other words, we imagine the flow to be like this:
Unprocessed Mic Audio ----------(Agora Processing with profile) -------------> Processed Mic Audio (we want this) ---------> Agora Servers
I looked into the AudioFrameObserver api. In particular the
onRecordAudioFrame
function should have done the trick.However, there is (what I believe to be) a bug: because I called
setAudioProfile(.musicStandardStereo, scenario: .chatRoomGaming)
, the recorded voice is extremely distorted. It is a bug because if I never called thesetAudioProfile
command, the recorded audio is completely fine. In fact, if I change thesetAudioProfile
call even slightly, tosetAudioProfile(**.speechStandard**, scenario: .chatRoomGaming)
, the recorded audio is fine as well.The thing is, I can't not call
setAudioProfile
, since not calling it would mean I no longer benefit from the.chatRoomgGaming
audio profile's background noise suppression on my Agora calls.Sample Audio File.
In the following file, I recorded myself saying the words "testing, testing, testing", and this was the result:
IMG_1513.mp4.zip)
Smartphone (please complete the following information):
The text was updated successfully, but these errors were encountered: