mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 20:25:34 +08:00
Enable audio transmission
This commit is contained in:
53
test/audio_capture/output_audio.cpp
Normal file
53
test/audio_capture/output_audio.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
#include <SDL2/SDL.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int ret;
|
||||
SDL_AudioSpec wanted_spec, obtained_spec;
|
||||
|
||||
// Initialize SDL
|
||||
if (SDL_Init(SDL_INIT_AUDIO) < 0) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to initialize SDL: %s",
|
||||
SDL_GetError());
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Set audio format
|
||||
wanted_spec.freq = 44100; // Sample rate
|
||||
wanted_spec.format =
|
||||
AUDIO_F32SYS; // Sample format (32-bit float, system byte order)
|
||||
wanted_spec.channels = 2; // Number of channels (stereo)
|
||||
wanted_spec.samples = 1024; // Buffer size (in samples)
|
||||
wanted_spec.callback = NULL; // Audio callback function (not used here)
|
||||
|
||||
// Open audio device
|
||||
ret = SDL_OpenAudio(&wanted_spec, &obtained_spec);
|
||||
if (ret < 0) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
|
||||
"Failed to open audio device: %s", SDL_GetError());
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Start playing audio
|
||||
SDL_PauseAudio(0);
|
||||
|
||||
// Write PCM data to audio buffer
|
||||
float *pcm_data = ...; // PCM data buffer (float, interleaved)
|
||||
int pcm_data_size = ...; // Size of PCM data buffer (in bytes)
|
||||
int bytes_written = SDL_QueueAudio(0, pcm_data, pcm_data_size);
|
||||
|
||||
// Wait until audio buffer is empty
|
||||
while (SDL_GetQueuedAudioSize(0) > 0) {
|
||||
SDL_Delay(100);
|
||||
}
|
||||
|
||||
// Stop playing audio
|
||||
SDL_PauseAudio(1);
|
||||
|
||||
// Close audio device
|
||||
SDL_CloseAudio();
|
||||
|
||||
// Quit SDL
|
||||
SDL_Quit();
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user