DirectPlay DirectPlay Voice 전송 제어   [목차열람] [주소복사] [슬롯비우기]
전송 제어
 
Microsoft DirectX 9.0

전송 제어


Microsoft® DirectPlay® Voice 의 퍼포먼스 요건을 억제하려면 , 사용자가 이야기하고 있을 때만, 음성 데이터를 송신하면 좋다. 음성 데이터의 전송을 제어하려면 , 다음의 3 개의 방법이 있다.

IDirectPlayVoiceClient::Connect 를 호출해 음성 세션에 접속 할 때는, 전송 제어에 사용하는 방법을 선택한다. 전송 제어의 종류를 지정하려면 ,DVCLIENTCONFIG 구조체의 dwFlags 멤버에 적절한 플래그를 설정한다. IDirectPlayVoiceClient::SetClientConfig 를 호출해, 플래그의 설정을 변경 하면, 세션중에 전송 제어의 종류를 변경할 수 있다.

푸쉬 투 토크

푸쉬 투 토크 전송 제어는, 쌍방향 무선기의 [토크] 버튼을 누르는 것과 비슷하다. 이것에 의해, 대면형의 슈팅 게임등의 게임 장르에서는, 리얼리티가 늘어난다. 푸쉬 투 토크 전송 제어에서는, 음성 데이터를 송신하는 타이밍을 사용자가 선택한다. 음성 이외의 데이터가 전송을 액티브하게 할 가능성은 없다. 이 방법에는, 이야기하는 타이밍을 사용자가 선택해야 하기 때문에, 동시에 이야기하는 사용자의 수가 줄어든다고 하는 이점도 있다.

푸쉬 투 토크 전송 제어에서는, 음성을 액티브하게 하는 것보다도 많은 설계와 개발이 필요하게 된다. 특히, 사용자가 전송을 시작 하는 선택을 했을 때에, 그것을 검출할 방법이 필요하게 된다. 이 조작은, 보통, 콘트롤러의 버튼이나 키보드의 키를 누르는 것으로 행해진다. 사용자가 이야기를 시작하려 하고 있는 것을 검출하면IDirectPlayVoiceClient::SetTransmitTargets 를 호출해 전송을 시작 해, 전송을 수신하는 타겟 식별자 (ID)의 배열을 제공할 필요가 있다. 사용자가 이야기해 끝낸 것을 검출하면 타겟 배열을 NULL 로 설정해, 타겟수를 0 으로 설정해, 한번 더 IDirectPlayVoiceClient::SetTransmitTargets 를 호출한다.

푸쉬 투 토크는, 디폴트의 전송 제어 방법이다. DVCLIENTCONFIG_AUTOVOICEACTIVATED 플래그 또는 DVCLIENTCONFIG_MANUALVOICEACTIVATED 플래그를 DVCLIENTCONFIG 구조체로 설정해, 명시적으로 음성을 액티브하게 하는 선택을 하지 않는 한, 이 방법이 유효하게 된다.

음성 기동

음성을 액티브하게 하는 것에 의한 전송 제어에서는, 마이크 입력을 상시 분석하는 것으로, 사용자가 이야기하고 있는지를 판단한다. 입력이 해 귀의값레벨을 넘으면 음성 기동을 해 사용자는 전송을 시작 할 수 있다. 전송은, 사용자가 이야기를 시작했을 때에 시작 해, 이야기해 끝냈을 때에 정지하는 것이 이상적이다.

음성 기동에서는, 사용자는 마이크를 향해 이야기하는 것만으로 끝나므로, 푸쉬 투 토크보다 사용자에 있어서는 간단하다. 또, 사용자가 전송을 시작 또는 종료하는 타이밍을 검출할 필요가 없기 때문에, 보다 간단하게 코딩 할 수 있다. 접속시에 음성 기동을 지정 하면, 전송 제어는 그 시점으로부터 시스템이 실행한다. 그러나, 음성 기동의 1 개의 결점은, 불필요한 전송이 발생하는 것이다. 마이크를 향해 이야기할 뿐만 아니라, 사용자의 숨이 직접 마이크에 걸린, 소란스러운 환경등에서 주위의 잡음이 많은, 게임의 음성을 외부 스피커로 재생하고 있는 등의 소리가 원인으로, 불필요한 전송이 발생하는 일이 있다. 품질의 낮은 마이크도, 불필요한 전송을 늘리는 원인이 된다.

음성 기동은, 자동 또는 수동으로 실시할 수 있다. 이러한 모드의 어느쪽이든을 지정하려면 , 음성 세션에 접속할 경우에, DVCLIENTCONFIG_AUTOVOICEACTIVATED 플래그 또는 DVCLIENTCONFIG_MANUALVOICEACTIVATED 플래그를 설정한다.

자동적으로 음성을 액티브하게 하는 모드는, 대부분의 애플리케이션에 적절한 전송 제어의 방법이다. 이 모드에서는, 전송의 해 귀의값은 시스템이 자동적으로 결정한다. 해 귀의값레벨은, 입력 신호에 맞추어 자동적으로 조정된다.

수동으로 음성을 액티브하게 하는 경우,DVCLIENTCONFIGdwThreshhold 멤버에 값을 할당해, 음성 세션에 접속했을 때에 명시적으로 해 귀의값을 설정할 필요가 있다. 시스템은, 자동적으로 이 값을 변경하지 않는다. 조건이 바뀌어, 해 귀의값이 적절하지 않게 되었을 경우는,IDirectPlayVoiceClient::SetClientConfig 를 호출해,dwThreshhold 의 새로운 값을 지정할 필요가 있다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP