This document is about: VOICE 1
SWITCH TO

Photon Voice1은 Photon Voice의 첫 버전입니다.        현재는 리팩터링/확장을 거친 Photon Voice 2이 준비되어 있으므로 새로운 프로젝트를 시작할 경우에는 Photon Voice 2를 사용하시는 것을 권장합니다.

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.
그래서 이 쌍을 보면 어디에서 음성 스트림이 왔는지 추측할 수 있습니다: 어떤 플레이어와 어떤 레코더.
원격 스트림에 대한 세 가지 이벤트를 구독할 수 있습니다.

  • PhotonVoiceNetwork.Client.OnRemoteVoiceInfoAction: 새 원격 음성 스트림이 생성되고 정보가 수신됩니다(전송 시작됨).
  • PhotonVoiceNetwork.Client.OnAudioFrameAction: 오디오 프레임이 특정 원격 음성 스트림에서 수신됩니다.
  • PhotonVoiceNetwork.Client.OnRemoteVoiceRemoveAction: 원격 음성 스트림이 종료되고 파괴됩니다(전송 중지됨).

들어오는 원격 음성 스트림 전체를 캡처하려는 경우 다음과 같이 수행할 수 있습니다:

  1. OnRemoteVoiceInfoAction 핸들러에서 스트림에 대한 파일을 생성하고 오픈합니다.
  2. OnAudioFrameAction 핸들러에서 오디오 데이터의 프레임을 작성합니다.
  3. OnRemoteVoiceRemoveAction 핸들러에서 파일을 저장하고 닫습니다.

또는 사용자 입력에 따라 OnAudioFrameAction 파일을 열고 업데이트할 수 있습니다.

두 번째, 발신 음성 스트림:

발신 음성 스트림은 Voice.LocalVoiceAudio<T>.IProcessor 를 생성하여 로컬 음성 처리 파이프라인내에 삽입할 수 있습니다.

PhotonVoiceCreated 유니티 메시지를 가로채려면 PhotonVoiceRecorder로서 동일한 GameObject에 컴포넌트를 붙여야 합니다.
IProcessor.Process 에서 로컬로 녹음된 오디오 프레임을 찾을 수 있습니다.
데모는 TestVoice 폴더의 "DelayProcessor.cs"를 참조하세요.

사용자 지정 음성 소스를 어떻게 사용하나요?

PhotonVoiceRecorder를 변경하여 사용자 지정 오디오 소스에서 생성된 오디오를 전송하려면 다음을 수행합니다:

첫 번째 방법: 데이터 스트림은 소비자가 주도합니다.

AudioClipWrapper 이 이 접근법의 샘플입니다.
PhotonVoiceRecorder.AudioClip이 할당된 오디오 클립을 스트리밍합니다.

  1. 오디오를 읽는 클래스를 생성하고 ExitGames.Client.Photon.Voice.IAudioReader 인터페이스를 구현합니다. 예를들어, MyAudioReaderSource.

  2. 에디터에서 PhotonVoiceRecorder의 SourceFactory 로 설정합니다.(또는 코드로).

  3. 어플리케이션이 초기화될 때 클래스의 인스턴스를 생성합니다.(PhotonVoiceRecorder의 생성전):

    C#

    // MyAudioSource is just an example, replace with your own class name and constructor
    PhotonVoiceNetwork.AudioSourceFactory = (rec) => new MyAudioReaderSource();
    
  4. 클라이언트가 음성 룸에 연결되어 있고 PhotonVoiceRecorder가 전송중이면 사용자 지정 오디오 소스 인스턴스에서 IAudioReader.Read(float[] buffer) 메소드가 호출됩니다. (예를들어, MyAudioReaderSource).
    사용자 지정 오디오 소스 인스턴스의 IAudioReader.SamplingRate 속성에 의해 리턴된 호출 빈도와 버퍼 크기가 에서 반환된 샘플링 속도를 충족하도록 조정됩니다. (예: MyAudioReaderSource).

두 번째 방법: 데이터 스트림은 프로듀서에 의해 구동됩니다

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

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

  2. 에디터에서 PhotonVoiceRecorder의 SourceFactory 로 설정합니다(또는 코드에서).

  3. 어플리케이션이 초기화될 때 클래스의 인스턴스를 생성합니다.(PhotonVoiceRecorder의 생성전):

    C#

    // MyAudioSource is just an example, replace with your own class name and constructor
    PhotonVoiceNetwork.AudioSourceFactory = (rec) => 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