// primeiro checar se um dispositivo de áudio está disponível
if (!SoundBufferRecorder::isAvailable())
{
}
// criar o gravador
SoundBufferRecorder recorder;
// começar a capturar
recorder.start();
// parar de capturar
recorder.stop();
// recuperar o buffer
const sf::SoundBuffer& buffer = recorder.getBuffer();
A captura ocorre em sua própria thread, o que significa que você pode fazer o que quiser entre o inicio e o fim dela, sem que seja interrompida.
- Salvar em um arquivo
buffer.saveToFile("my_record.ogg");
- Tocar
sf::Sound sound(buffer); sound.play();
- Outros
const sf::Int16* samples = buffer.getSamples(); std::size_t count = buffer.getSampleCount(); doSomething(samples, count);
Há também 2 funções adicionais:
onStart
e onStop
. Estas são chamadas quando a captura começa/termina.
Você também pode criar o seu próprio gravador:
class MyRecorder : public sf::SoundRecorder
{
virtual bool onStart()
{
return true;
}
virtual bool onProcessSamples(const Int16* samples, std::size_t sampleCount)
{
return true;
}
virtual void onStop()
{
}
}
if (!MyRecorder::isAvailable())
{
}
MyRecorder recorder;
recorder.start();
recorder.stop();
Nenhum comentário:
Postar um comentário