This document is about: VOICE 2
SWITCH TO

Frequently Asked Questions

어떤 Photon 제품이 나에게 맞을까요?

이에 대한 답변은 주로 귀하의 프로젝트와 팀에 따라 달라집니다.
일반적으로, 저희는 가장 진보된 클라이언트 솔루션인 Fusion 또는 Quantum을 사용하는 것을 권장합니다.

빠른 개요를 위해 두 제품 시트 모두 제품 선택기 "Quadrant"를 포함합니다:

의문 사항이 있으시면 언제든지 연락주시길 바랍니다.

Photon Cloud

Photon Cloud는 다운되나요?

Photon Cloud 상태는 여기에서 확인하거나 트위터에서 @exitgames를 팔로우하여 상태 업데이트에 대해 알림을 받으십시오.

기본 Photon 지역은 어디인가요?

고객들은 최소 하나의 지역을 사용할 수 있으면 Photon Cloud에 연결할 수 있어야합니다.
이에 대해 보장을 위해, 기본값이 구성되어있거나 개발자가 명시적으로 값을 설정하지 않거나 "최적 지역" 옵션을 선택하지 않을 때 사용됩니다.
기본값은 클라이언트 SDK에 따라 다양할 수 있습니다.
원시 SDK에서는 OpGetRegions 에 의해 서버에서 리턴되는 지역 목록의 첫 번째 인덱스에 있는 값입니다.
Unity와 DotNet SDK에서 기본 지역은 "EU" 입니다.

일부 지역을 비활성화할 수 있나요?

예.
이 기능은 "비활성화된" 지역 없이 "지역 허용 목록"을 정의하여 작동합니다.
"대시보드 지역 필터링"에 대해 자세히 알아보세요.

모든 클라우드 서버/IP 목록을 얻을 수 있나요?

Photon Cloud가 너무 자주 변경되기 때문에 이러한 목록은 존재하지 않습니다. 서버가 추가되거나 제거되고 때때로 새로운 지역이 나타납니다. 즉, Photon Cloud(전체)를 허용 목록에 추가하는 것은 불가능합니다.

Enterprise Cloud의 경우 다른 주제이기 때문에 메일로 문의해 주시길 바랍니다.

Photon Industries Circle 내의 앱은 허용 목록에 대한 호스트 이름에 의존할 수 있습니다: *.photonindustries.io. 연결할 "서버"로 ns.photonindustries.io를 사용해야 합니다.

Photon Voice

대화 내용을 파일로 저장하려면 어떻게 해야 하나요?

이 질문에는 두 부분으로 나누어 답하겠습니다.

첫째, 수신 음성 스트림:

Photon Voice 스트림은 PlayerId와 VoiceId 쌍을 사용하여 고유하게 식별됩니다.
따라서 이 쌍을 통해 원격 음성 스트림의 출처를 추측할 수 있습니다. 즉, 어떤 플레이어이고 어떤 레코더인지입니다.
원격 스트림에 대해 세 가지 이벤트를 구독할 수 있습니다.

  • VoiceConnection.RemoteVoiceAdded(RemoteVoiceLink): 수신된 정보를 바탕으로 새로운 원격 음성 스트림이 생성(전송 시작)됩니다.
  • RemoteVoiceLink.FloatFrameDecoded(float[]): 특정 원격 음성 스트림에서 오디오 프레임이 수신됩니다.
  • RemoteVoiceLink.RemoteVoiceRemoved: 원격 음성 스트림이 종료되어 파기되었습니다(전송 중단).

수신 원격 음성 스트림 전체를 캡처하려면 다음을 수행할 수 있습니다.

  1. RemoteVoiceAdded 핸들러에서 스트림에 대한 파일을 생성하고 엽니다.
  2. FloatFrameDecoded 핸들러에 오디오 데이터의 프레임을 씁니다.
  3. RemoteVoiceRemoved 핸들러에서 파일을 저장하고 닫습니다.

또는 사용자 입력에 따라 파일을 열고 닫고 FloatFrameDecoded를 적절히 업데이트할 수 있습니다.

둘째, 발신 음성 스트림:

발신 오디오 스트림의 경우 Voice.LocalVoiceAudio<T>.IProcessor를 확장하여 사용자 지정 프로세서를 생성할 수 있습니다.
로컬에서 녹음된 오디오 프레임은 IProcessor.Process에서 얻을 수 있습니다.
Recorder와 동일한 GameObject에 연결된 구성 요소는 PhotonVoiceCreated Unity 메시지를 가로채는 데 필요합니다.
해당 메서드 내부에서 LocalVoice.AddPreProcessor (전송 전) 또는 LocalVoice.AddPostProcessor (전송 후)를 사용하여 로컬 음성 처리 파이프라인에 사용자 지정 프로세서를 삽입합니다.
예를 보려면 "WebRtcAudioDsp.cs"를 참조하세요.

사용자 지정 오디오 소스를 어떻게 사용하나요?

Recorder가 사용자 정의 오디오 소스에서 생성된 오디오를 전송하도록 하려는 경우:

첫 번째 접근 방식: 데이터 스트림은 소비자에 의해 구동됩니다.

AudioClipWrapper는 이러한 접근 방식의 샘플입니다.
Recorder.AudioClip에 할당된 오디오 클립을 스트리밍합니다.

  1. 오디오 소스를 읽고 Photon.Voice.IAudioReader 인터페이스를 구현하는 클래스를 만듭니다. 예: MyAudioReaderSource.

  2. 편집기(또는 코드)에서 Recorder.SourceTypeFactory로 설정합니다.

  3. 앱 초기화 중 어딘가에(Recorder 생성 전) 클래스 인스턴스를 생성합니다.

    C#

    // MyAudioReaderSource is just an example, replace with your own class name and constructor
    recorder.InputFactory = () => new MyAudioReaderSource();
    
  4. 클라이언트가 음성실에 연결되어 있고 Recorder가 전송 중인 경우 IAudioReader.Read(float[] buffer) 메서드는 사용자 지정 오디오 소스 인스턴스(예: MyAudioReaderSource)에서 호출됩니다.
    호출 빈도와 버퍼 크기는 사용자 지정 오디오 소스 인스턴스(예: MyAudioReaderSource)의 IAudioReader.SamplingRate 속성에서 반환된 샘플링 속도에 맞게 조정됩니다.

두 번째 접근 방식: 데이터 스트림은 생산자에 의해 구동됩니다.

"AudioUtil.cs"의 ToneAudioPusher는 이 접근 방식의 샘플입니다.

  1. 이 경우 대신 Photon.Voice.IAudioPusher 인터페이스를 구현하는 것이 더 편리할 수 있습니다. 예: MyAudioPusherSource.
    주어진 콜백을 주로 저장하는 IAudioPusher.SetCallback 메서드만 구현하면 됩니다.

  2. 편집기(또는 코드)에서 Recorder.SourceTypeFactory로 설정합니다.

  3. 앱 초기화 중 어딘가에 클래스 인스턴스를 생성합니다(PhotonVoiceRecorder 생성 전):

    C#

    // MyAudioPusherSource is just an example, replace with your own class name and constructor
    recorder.InputFactory = () => new MyAudioPusherSource();
    
  4. 스트리밍하는 동안 IAudioPusher.SetCallback을 사용하여 주기적으로(예: MonoBehaviour.OnAudioFilterRead에서) 콜백 세트를 호출하면 됩니다. 이때 샘플 수는 그대로입니다.
    Photon Voice가 모든 버퍼링 작업을 대신해 드립니다.

과금

학생, 취미자 또는 인디 개발자를 위한 특별 제안이 있나요?

저희의 모든 제품에는 프리티어와 일회 지불하는 가격 정책이 있습니다.
또한 우리는 Unity 에셋 스토어에서 판매를 하고 있으며 때로는 바우처를 제공해드립니다.

Photon 애플리케이션 하나에 대해 100 CCU 플랜을 하나 이상 결합할 수 있습니까?

아니오.
100 CCU 플랜은 겹쳐서 사용할 수 없으며 AppId당 딱 한 번만 적용할 수 있습니다.
여러개의 PUN+ 에셋 시트를 구입한 경우 AppId 별로 100 CCU에 대해 리딤해주어야 합니다.
단일 앱에 대해 더 많은 CCU가 필요한 경우, 다음으로 높은 요금제는 500 CCU입니다.
월간 또는 연간 플랜에 가입한 경우, 월간/연간 플랜의 CCU에 추가로 12개월 동안 100 CCU가 유지됩니다.

Photon 플랜에 얼마나 많은 트래픽이 포함되어 있나요? 앱에서 포함된 한도를 넘는 트래픽을 생성하면 어떻게 되나요?

Photon Public Cloud 및 Premium Cloud 플랜에는 CCU당 3GB가 포함됩니다.

예를 들어, 1,000개의 CCU를 갖춘 월간 요금제에는 월 3TB의 트래픽이 포함됩니다.

앱이 더 많은 트래픽을 생성하면 자동으로 이메일을 통해 알림을 보냅니다. 매월 말에 Photon 계정 이메일 주소로 자동 생성된 초과 청구서를 받게 됩니다. 청구서 금액은 다음 계산을 기반으로 합니다.

총 트래픽 - 포함 트래픽 = 초과 트래픽(GB)

트래픽은 사용된 Photon Cloud 지역에 따라 GB당 90원/180원으로 계산되고 추가 청구됩니다.

Photon Cloud 플랜의 구독한 CCU를 피크 CCU가 초과하면 어떻게 되나요?

500 CCU / 1,000 CCU / 2,000 CCU 플랜에 가입한 경우, 애플리케이션에 대해 "CCU 버스트"가 자동으로 활성화됩니다. Photon Cloud는 사용자에게 최상의 경험을 제공하기 위해 예약한 것보다 더 많은 CCU를 허용합니다.

버스트가 시작되면 합의된 조건에 따라 48시간 이내에 필요한 구독 등급으로 업그레이드해야 합니다.

업그레이드하지 않으면 Photon 계정 이메일 주소로 "초과 청구서"를 보내고 구독한 플랜을 초과하는 각 CCU에 대해 CCU당 1350원/1400원/1800원(사용된 SDK 기준)의 수수료를 청구합니다.

Photon은 "피크 CCU"는 해당 달에 합산된 지역별 피크 CCU의 합계입니다. 피크에 도달한 후 사용량이 감소하더라도 초과 요금을 피하기 위해 업그레이드해야 합니다.

Back to top