기술 자료

​
​

Development

User Acquisition

Monetization

산업 분야

Vivox Core SDK

Vivox Core SDK

이 페이지는 선택한 언어로 제공되지 않습니다.
Vivox
​
​
Vivox Core SDK
  • Overview
  • Before you begin
  • Get started
  • Release notes
  • Developer Guide
    • Client SDK basics
    • Channels
    • Presence management
    • Messaging
    • Manage audio
      • Direct voice audio access
        • Callback APIs
        • Callback usage
        • Read and alter audio data for each participant
      • In-game audio control
      • Muting
    • Couch co-op
    • Android app development
    • iOS app development
    • macOS app development
    • Windows app development
    • Real-time recording
    • Speech-to-text audio transcription
    • Text-to-speech
    • Troubleshooting
  • Reference
  • Privacy overview
  1. Vivox Core SDK documentation

Callback APIs

How to set the callback pointers.
읽는 시간 3분
최근 업데이트: 8달 전

Vivox Core

The
vx_sdk_config_t
structure has six fields for registering callback function pointers related to audio buffers and the audio subsystem. Note that these callback pointers must be set at the time of the Vivox SDK initialization. This structure is passed in when calling
vx_initialize3()
and cannot be set or altered by other code modules afterwards. You only need to set the callbacks that you plan to use.
After the callbacks are set, they are called from the Vivox real-time audio processing thread. Any blocking operations (for example, memory allocation or writing data to storage) should be performed on another thread to prevent blocking audio processing.
The following code snippet shows an example of how to set the callback pointers.
// Called after audio is read from the capture device.// This is as close to the capture device as possible, but can still// have audio adjustments due to hardware echo cancellation and other// factors.// No blocking operations can occur on this callback.void(*pf_on_audio_unit_after_capture_audio_read)( void *callback_handle, const char *session_group_handle, const char *initial_target_uri, short *pcm_frames, // frame buffer int pcm_frame_count, // number of frames in buffer int audio_frame_rate, // sample rate, can switch mid-stream int channels_per_frame // channels per frame);// Called when an audio processing unit is about to// send captured audio to the network from the audio processing// thread.// No blocking operation can occur on this callback.void(*pf_on_audio_unit_before_capture_audio_sent)( void *callback_handle, const char *session_group_handle, const char *initial_target_uri, short *pcm_frames, // frame buffer int pcm_frame_count, // number of frames in buffer int audio_frame_rate, // sample rate, can switch mid-stream int channels_per_frame // channels per frame);// Called before an audio processing unit mixes the per-participant// audio data to a single stream from the audio processing thread.// No blocking operations can occur on this callback.void (*pf_on_audio_unit_before_recv_audio_mixed_t)( void *callback_handle, const char *session_group_handle, const char *initial_target_uri, vx_before_recv_audio_mixed_participant_data_t *participants_data, size_t num_participants);// Called when an audio processing unit is about to write received// audio to the render device from the audio processing thread.// No blocking operations can occur on this callback.void(*pf_on_audio_unit_before_recv_audio_rendered)( void *callback_handle, const char *session_group_handle, const char *initial_target_uri, short *pcm_frames, // frame buffer int pcm_frame_count, // number of frames in buffer int audio_frame_rate, // sample rate, can switch mid-stream int channels_per_frame, // channels per frame int is_silence // equals 0 if there is renderable audio data);// Called when an audio processing unit is started// from the audio processing thread.// No blocking operations can occur on this callback.void(*pf_on_audio_unit_started)( void *callback_handle, const char *session_group_handle, const char *initial_target_uri);// Called when an audio processing unit is stopped// from the audio processing thread.// No blocking operations can occur on this callback.void(*pf_on_audio_unit_stopped)( void *callback_handle, const char *session_group_handle, const char *initial_target_uri);

Copyright © 2026 Unity Technologies
법률 정보개인정보 처리방침쿠키Documentation Terms of Use개인 정보 판매 또는 공유 금지개인정보 보호 선택(쿠키 설정)

'Unity', Unity 로고 및 기타 Unity 상표는 미국 및 기타 지역 내 Unity Technologies 또는 그 계열사의 상표 또는 등록상표입니다(자세한 내용은 여기에서 확인하세요). 기타 명칭 또는 브랜드는 해당 소유자의 상표입니다.

일부 페이지는 편의를 위해 기계 번역되었으며 부정확한 내용이 있을 수 있습니다. 정보가 상충되는 경우, 영어 버전을 우선으로 참조하세요.

  • 보고 있는 페이지
    • Vivox Core


이 페이지의 문제 보고