Android Tencent 실시간 오디오 및 비디오 TRTC 오디오 충돌, Mike Feng 선점 문제, 실시간 오디오 및 비디오 중 녹화 실패

       텐센트의 실시간 오디오 및 비디오 TRTC SDK에 연결하여 사용 중 문제가 발생했습니다. 더 심각한 문제는 오디오 및 비디오 과정에서 로컬 화면 녹화가 수행되어 사운드 부족으로 녹화에 실패한 것입니다.

1. 채널

       SDK는 현재 시스템 볼륨 유형에 대해 세 가지 제어 모드를 제공합니다.

(1) TRTCCloudDef # TRTCSystemVolumeTypeAuto : "마이크에서 통화, 마이크 아래의 미디어"즉, 앵커는 마이크가 켜져있을 때 통화 볼륨을 사용하고 청중이 마이크에 있지 않을 때 청중은 미디어 볼륨을 사용하므로 온라인 라이브 방송 시나리오에 적합합니다. Room에 들어갈 때 선택한 장면이  TRTCCloudDef # TRTC_APP_SCENE_LIVE  또는  TRTCCloudDef # TRTC_APP_SCENE_VOICE_CHATROOM 이면 SDK가이 모드를 자동으로 선택합니다.

(2) TRTCCloudDef # TRTCSystemVolumeTypeVOIP : 통화 볼륨이 통화 전체에 사용되며 다자간 회의 시나리오에 적합합니다. Room에 들어갈 때 선택한 장면이  TRTCCloudDef # TRTC_APP_SCENE_VIDEOCALL  또는  TRTCCloudDef # TRTC_APP_SCENE_AUDIOCALL 인 경우 SDK는이 모드를 자동으로 선택합니다.

(3) TRTCCloudDef # TRTCSystemVolumeTypeMedia : 미디어 볼륨은 통화 내내 사용되며 일반적으로 사용되지 않으며 특별한 요구가있는 개별 애플리케이션 시나리오 (예 : 호스트 용 외부 사운드 카드)에 적합합니다.

통화 채널인지 미디어 채널인지 확인합니다.

볼륨 키는 볼륨을 끄고 소리없이 끌 수있는 경우 미디어 채널이고 끌 수없는 경우 통화 채널입니다.

2. Xlog 로그

      사용 중 문제 나 예외 사항이있을 경우 xlog 로그를 확인하고 Tencent 고객 서비스에 보내서 확인할 수 있습니다 .xlog 로그는 전화기의 로컬 파일 경로에 있습니다.
xlog 로그 : https://cloud.tencent.com/developer/article/1502366

3. 마이크 선점

      마이크 선점은 휴대폰에서 시도한 기본 구현과 관련이있을 수 있습니다. 처리 방법 중 하나는 Tencent의 실시간 오디오 및 비디오 오디오를 끈 다음 제공되는 API를 사용하여 자체 오디오 데이터를 실시간으로 전송하여 충돌이없고 오디오 데이터를 전송할 수 있도록하는 것입니다.

(1) tRTCCloud.enableCustomAudioCapture (true)

       오디오 사용자 지정 캡처 모드 활성화

      이 모드가 활성화되면 SDK는 원본 오디오 캡처 프로세스를 실행하지 않고 인코딩 및 전송 기능 만 유지합니다. 자신이 수집 한 오디오 데이터를 SDK에 지속적으로 삽입하려면 sendCustomAudioData ()를 사용해야합니다.

매개 변수

활성화 활성화 여부 true : 활성화, false : 비활성화, 기본값 : false

(2) tRTCCloud.startLocalAudio (); 호출하지 마십시오. 호출되면주의해야합니다. 전원을 끈 후 Tencent 실시간 오디오 및 비디오 SDK의 오디오 전송이 없습니다.

(3) tRTCCloud.sendCustomAudioData (mTRTCAudioFrame)를 통해 실시간으로 오디오 데이터를 전송합니다.

private TRTCCloudDef.TRTCAudioFrame mTRTCAudioFrame = new TRTCCloudDef.TRTCAudioFrame();
mTRTCAudioFrame.data = data; //data为你自己采集到的音频数据
mTRTCAudioFrame.sampleRate = 48000; //采样率需要与自己音频的采样率一样,不与其推荐的一样也可以
mTRTCAudioFrame.channel = 1;  //1-单声道,2-双声道
mTRTCAudioFrame.timestamp = 0; //时间戳设为0即可
if (trtcCloud != null) {
   trtcCloud.sendCustomAudioData(mTRTCAudioFrame);
}

 sendCustomAudioData ()

본인이 수집 한 오디오 데이터를 SDK로 전송

TRTCAudioFrame은 다음 채우기 방법을 권장합니다.

데이터 : 오디오 프레임 버퍼. 오디오 프레임 데이터는 PCM 형식이어야하며 프레임 당 20ms 샘플을 권장합니다. [48000 샘플링 속도, 모노 프레임 길이 : 48000 × 0.02s × 1 × 16bit = 15360bit = 1920 바이트].
sampleRate : 샘플링 속도.
채널 : 채널 수 (스테레오 인 경우 데이터가 교차됨), 모노 : 1; 이중 : 2.
타임 스탬프 : 타임 스탬프 간격이 고르지 않으면 오디오 및 비디오 동기화와 녹음 된 MP4의 품질에 심각한 영향을 미칩니다.
참조 문서 : 사용자 정의 캡처 및 렌더링.

매개 변수
프레임 오디오 프레임입니다. 현재는 모노 만 지원하고 48K 샘플링 속도 만 지원합니다. 에 TRTCAudioFrame. 참고하시기 바랍니다
있습니다
당신이 그렇지 않으면 소리가 간헐적 것, SDK가 자체 타임 스탬프를 설정시키기에 해당하는 0으로 프레임의 타임 스탬프를 설정하지만, "균등"sendCustomAudioData의 호출 간격을 제어하십시오 할 수 있습니다.

 

추천

출처blog.csdn.net/qq_37980878/article/details/111557146