2016-03-18 16 views
0

ses API kullanarak ilgili Qt web sitesinde örnekler vardır, ama açıkçası ben gerçekten onları hiç anlamıyorum. Baytları Qt kullanarak ses çıkışına yazabilir miyim?

Ne Bazı ses tampon içine değerlere (bayt, tamsayılar ...) dizisini yazıyor hayal ediyordum ve ses kartı "play" Onları (aslında onları DAC) var.

yalancı kod:

// Square wave? 
const int values[] = {255,255,255,255, 0,0,0,0, 255,255,255,255 ...}; 
// Create output that will buffer the bytes and put them on digi to analog converter 
RawAudioOutput output(BIT_RATE_CONSTANT, ... some other parameters ...); 
output.start(); 
output.writeBytes(values, sizeof(values)); 

Böyle bir şey başarmak miyim? Nasıl giderim? Audacity'de kare dalgayı modelleyebileceğimi biliyorum (kulağa hoş gelmiyor), bu yüzden mümkün olduğunu düşünüyorum. Nasıl? Bir ses tampon içine değer dizisi yazmak isterseniz Qt yılında

cevap

1

, bunun için sınıf QAudioOutput olduğunu. Değer dizisinin formatı değişebilir, PCM formatı tüm platformlar tarafından desteklenmelidir. an example that demonstrates the usage of QAudioOutput ile

Qt gemileri, şuna bir bakın. Örnekte, Generator::generateData() işlevi daha sonra ses aygıtına gönderilen değerler dizisini oluşturur. değerler dizisi ses oynayan Tabii

oldukça düşük seviyesidir. QMediaPlayer ile Qt ayrıca ses dosyalarını (.wav, .mp3), video dosyalarını oynatmak için üst düzey bir sınıf sağlar ve hatta akarsu.

İlgili konular