tencent cloud

피드백

실시간 노래방 기능

마지막 업데이트 시간:2024-01-18 16:00:04
    본문은 개발자가 쉽게 디버깅하고 통합할 수 있도록 실시간 노래방 기능용 Game Multimedia Engine(GME) API에 대해 설명합니다.

    전제 조건

    실시간 노래방 기능을 사용하려면 GME SDK를 통합해야 하며, 실시간 음성 통화가 가능해야 이 기능을 사용할 수 있습니다.
    방 입장 시 방 유형 매개변수를 입력해야 하며 방에 들어갈 때 RoomType = 2를 사용하는 것이 좋습니다(2 또는 3을 사용하십시오).
    사용 중 오류 코드 프롬프트가 표시되면 에러 코드를 참고하여 해결할 수 있습니다.

    순서도

    방 입장 프로세스는 다음 이미지를 참고하십시오.
    
    
    
    실시간 음성 채팅방 입장 API:
    ITMGContext.GetInstance(this).Init(String.valueOf(mAppId), mUserId);//sdk 초기화
    ITMGContext.GetInstance(this).SetTMGDelegate(new MyDelegate());//다양한 콜백 및 이벤트 수신에 사용되는 프록시 클래스 설정
    EnginePollHelper.createEnginePollHelper();//콜백을 트리거하기 위해 Poll 함수를 주기적으로 호출
    
    byte[] authbuff = AuthBuffer.getInstance().genAuthBuffer(mAppId, mRoomId, mUserId,mAppKey);//인증 정보 가져오기
    ITMGContext.GetInstance(this).EnterRoom(mRoomId, 2, authbuff);//방 입장
    설명:
    자세한 호출 프로세스 및 API 세부 정보는 각 SDK API 문서를 참고하십시오.

    노래방 API 가져오기

    1. 다운로드 가이드에서 표준 SDK 파일을 다운로드해야 합니다.
    2. 플랫폼별 노래방 기능 API를 다운로드하고 해당 API 파일을 가져옵니다.
    설명:
    이 기능은 mp3와 ogg의 두 가지 형식을 지원합니다.
    음악 파일이 ogg 형식인 경우 클릭하여 ogg 동적 라이브러리를 다운로드하십시오(iOS에는 이미 ogg 동적 라이브러리가 포함되어 있으므로 추가로 가져올 필요가 없습니다).
    음악 파일이 mp3 형식인 경우 클릭하여 mp3 동적 라이브러리를 다운로드하십시오(iOS 플랫폼만 이 동적 라이브러리를 가져오면 되며, 다른 플랫폼은 추가로 가져올 필요가 없습니다).

    Android 구성

    Android에 해당하는 API는 표준 jar 패키지에 이미 포함되어 있으므로 추가로 API 파일을 다운로드할 필요가 없습니다.

    iOS 구성

    1. iOS에서 노래방 기능을 사용하려면 관련 동적 라이브러리를 프로젝트에 가져와야 합니다. mp3 동적 라이브러리를 다운로드하려면 클릭하십시오.
    2. 다운로드한 파일을 프로젝트 파일로 가져옵니다. Link Binary With Libraries에 이 동적 라이브러리를 추가합니다.
    3. 다른 SDK 헤더 파일과 동일한 디렉터리에 있는 프로젝트에 헤더 파일 TMGEngine_adv.h를 추가합니다.

    Windows 구성

    Windows에서 노래방 기능을 사용하려면 헤더 파일을 다운로드한 후 헤더 파일 tmg_sdk_adv.h 및 tmg_type_adv.h를 프로젝트로 가져옵니다.

    Unity 엔진 구성

    Unity 엔진에서 노래방 기능을 사용하려면 헤더 파일을 다운로드하고 Unity 폴더에 있는 코드 파일 TMGEngine_Adv.cs 및 ITMGEngine_Adv.cs를 복사하여 프로젝트로 가져와야 합니다.
    iOS 플랫폼으로 내보내려면 상기 내용을 참고하여 mp3 동적 라이브러리를 가져오십시오.

    녹음 관련 API

    녹음 시작

    StartRecord API를 호출하여 녹음을 시작합니다. 녹음이 완료되면 콜백 함수가 있으며 ITMG_MAIN_EVENT_TYPE_RECORD_COMPLETED를 수신해야 합니다.
    녹음할 때 마이크가 켜져 있는지 확인하고(장치와 업스트림 모두 켜져 있어야 함) 파일 경로에 액세스할 수 있는지 확인하고 SDK가 적극적으로 폴더를 생성하지 않도록 합니다.

    함수 프로토타입

    int StartRecord(int type, String dstFile, String accMixFile, String accPlayFile)
    매개변수
    유형
    설명
    type
    int
    노래방 시나리오에서 이 매개변수는 ITMG_AUDIO_RECORDING_KTV로 전달됩니다. MP3 녹음 파일인 경우에는 ITMG_AUDIO_RECORDING_SELF를 사용하십시오.
    dstFile
    String
    녹음된 음악을 저장하는 데 사용되는 대상 파일 경로입니다.
    accMixFile
    String
    보통 사람 목소리와 합성하여 음악 파일을 만들기 위해 원음이 없는 반주를 사용합니다.
    accPlayFile
    String
    재생에 사용되는 음악 파일은 일반적으로 accMixFile과 동일한 파일입니다. 그러나 사용자가 노래를 잘 모를 경우, 원곡이 포함된 음악 파일 경로를 입력할 수 있습니다. 이 경우 원곡이 포함된 음악이 재생되지만, 원곡이 제외된 반주로 합성됩니다.

    예시 코드

    //Android
    ITMGAudioRecordCtrl.GetInstance().StartRecord(ITMGAudioRecordCtrl.ITMG_AUDIO_RECORDING_KTV, dstFile, accMixFile, accPlayFile);
    //iOS
    #import "GMESDK/TMGEngine_adv.h"
    [[ITMGAudioRecordCtrl GetInstance]StartPreview]

    녹음 중지

    녹음을 중지하려면 StopRecord API를 호출합니다.

    함수 프로토타입

    int StopRecord()

    녹음 일시 정지

    녹음을 일시 중지하려면 PauseRecord API를 호출합니다.

    함수 프로토타입

    int PauseRecord()

    녹음 재개

    녹음을 재개하려면 ResumeRecord API를 호출합니다.

    함수 프로토타입

    int ResumeRecord()

    녹음 콜백

    ITMG_MAIN_EVENT_TYPE_RECORD_COMPLETED 녹음 완료 콜백입니다. 이 콜백은 반주가 재생되거나 StopRecord가 호출될 때 트리거됩니다.

    콜백 매개변수

    매개변수
    유형
    설명
    result
    int
    녹음 결과, 0은 성공을 의미합니다. 다른 에러 코드가 있는 경우 에러 코드 문서를 참고하여 해결할 수 있습니다.
    filepath
    String
    대상 파일의 경로는 StartRecord에 전달된 매개변수인 dstFile입니다.
    duration
    String
    녹음 파일의 길이(밀리초)입니다.

    재생 파일 설정

    StartRecord API를 호출하여 녹음을 할 때, 재생할 음악 파일이 설정됩니다. 다시 설정하려면 이 API를 호출하여 재생 파일을 재설정할 수 있습니다. 이것은 일반적으로 원곡과 반주 간의 전환에 사용됩니다.

    함수 프로토타입

    int SetAccompanyFile(String accPlayFile)
    매개변수
    유형
    설명
    accPlayFile
    String
    재생에 사용되는 음악 파일입니다.

    반주 길이 가져오기

    이 매개변수를 호출하여 반주 파일인 accMixFile의 길이를 가져옵니다. 단위는 밀리초입니다.

    함수 프로토타입

    int GetAccompanyTotalTimeByMs()

    현재의 녹음 길이 가져오기

    이 매개변수를 호출하여 현재의 녹음 길이를 가져옵니다. 단위는 밀리초입니다.

    함수 프로토타입

    int GetRecordTimeByMs()

    녹음 리디렉션

    녹음 시간을 지정된 시점으로 리디렉션합니다. 매개변수가 현재 시간보다 더 앞쪽인 경우, 반복되는 부분을 다시 녹음합니다. 현재 시간보다 더 뒤쪽인 경우, 녹음되지 않은 부분을 음소거 데이터로 채웁니다.

    함수 프로토타입

    int SetRecordTimeByMs(int timeMs)
    매개변수
    유형
    설명
    timeMs
    int
    리디렉션 시점이며, 단위는 밀리초입니다.

    노래방 파일 미리보기

    녹음 파일 길이 가져오기

    이 매개변수를 호출하여 녹음 파일의 지속 시간을 가져옵니다.

    함수 프로토타입

    int GetRecordFileDurationByMs()

    녹음 파일 미리보기 시작

    이 매개변수를 호출하여 녹음 파일 미리보기를 시작합니다.

    함수 프로토타입

    int StartPreview()

    녹음 파일 미리보기 중지

    이 매개변수를 호출하여 녹음 파일 미리보기를 중지합니다.

    함수 프로토타입

    int StopPreview()

    녹음 파일 미리보기 일시 중지

    이 매개변수를 호출하여 녹음 파일 미리보기를 일시 중지합니다.

    함수 프로토타입

    int PausePreview()

    녹음 파일 미리보기 재개

    이 매개변수를 호출하여 녹음 파일 미리보기를 재개합니다.

    함수 프로토타입

    int ResumePreview()

    현재의 미리보기 시점 설정

    이 매개변수를 호출하여 현재의 미리보기 시점을 설정합니다.

    함수 프로토타입

    int SetPreviewTimeByMs(int time)
    매개변수
    유형
    설명
    time
    int
    미리보기 파일의 시점이며 밀리초 단위입니다.

    현재의 미리보기 시점 가져오기

    이 매개변수를 호출하여 현재 미리보기 시점을 가져옵니다.

    함수 프로토타입

    int GetPreviewTimeByMs()

    미리보기 재생 콜백

    ITMG_MAIN_EVENT_TYPE_RECORD_PREVIEW_COMPLETED: 미리보기 완료 콜백입니다. 미리보기 파일 재생이 종료되거나 StopPreview API가 호출될 때 트리거됩니다.

    콜백 매개변수

    매개변수
    유형
    설명
    result
    int
    재생 결과. 0은 성공을 의미합니다.

    파일 합성 API

    파일 병합

    이 매개변수를 호출하여 녹음된 음성과 반주를 하나의 파일로 병합합니다.

    함수 프로토타입

    int MixRecordFile();

    병합 취소

    이 매개변수를 호출하면 병합 작업이 취소됩니다.

    함수 프로토타입

    int CancelMixRecordFile();

    병합 파일 콜백

    ITMG_MAIN_EVENT_TYPE_RECORD_MIX_COMPLETED: 미리보기 완료 콜백입니다. 미리보기 파일의 재생이 종료되거나 StopPreview API가 호출될 때 트리거됩니다.

    콜백 매개변수

    매개변수
    유형
    설명
    result
    int
    합성 결과. 0은 성공을 의미합니다.
    filepath
    String
    대상 파일 경로, StartRecord API에서 전달된 dstFile입니다.
    duration
    String
    녹음 파일의 길이, 단위는 밀리초입니다.

    고급 설정

    반주 크기 조정 설정

    이 API를 호출하여 음성과 반주의 조정 비율을 설정합니다. 녹음이 완료된 후 조정할 수 있습니다.

    함수 프로토타입

    int SetMixWieghts(float mic, float acc)
    매개변수
    유형
    설명
    mic
    float
    음성 조정 비율입니다. 1.0은 기존 볼륨이며, 1.0보다 작으면 축소, 1.0보다 크면 확대됩니다. 범위는 0에서 2까지입니다.
    acc
    float
    반주의 크기 조정 비율입니다. 1.0은 기존 볼륨이며, 1.0보다 작으면 축소, 1.0보다 크면 확대됩니다. 범위는 0에서 2까지입니다.

    오프셋 설정

    이 API를 호출하여 반주에 대비해 음성의 오프셋을 설정합니다. 일반적으로 음성과 박자가 맞지 않는 경우 조정하는 데 사용됩니다. 녹음이 완료된 후 조정할 수 있습니다.

    함수 프로토타입

    int AdjustAudioTimeByMs(int time)
    매개변수
    유형
    설명
    time
    int
    음성의 반주에 대한 오프셋 시간이며, 단위는 밀리초입니다. 값이 0보다 큰 경우 뒤로 이동하고, 0보다 작은 경우 앞으로 이동합니다.

    음향 효과 설정

    음향 효과 유형을 설정합니다. 노래방 음향 효과에 대한 내용은 실시간 음성 채팅 음향 효과 문서를 참고하십시오. 녹음이 완료된 후에 조정할 수 있으며, 녹음 중에도 사용할 수 있습니다.

    함수 프로토타입

    int SetRecordKaraokeType(int type)
    매개변수
    유형
    설명
    type
    int
    이 유형은 실시간 음향 효과에서 노래방 음향 효과 유형과 동일합니다. 자세한 내용은 노래방 음향 효과를 참고하십시오.
    
    문의하기

    고객의 업무에 전용 서비스를 제공해드립니다.

    기술 지원

    더 많은 도움이 필요하시면, 티켓을 통해 연락 바랍니다. 티켓 서비스는 연중무휴 24시간 제공됩니다.

    연중무휴 24시간 전화 지원