続簡易バージョン
id:y-hamigaki:20060226 の続きです。
vorbis_file_source(旧称:vorbis_file)にformat()メンバを追加、pcm_sinkのバッファサイズはフォーマットから自動計算できるようにしました。
結果、oggファイルの再生はこうなりました。
#include <hamigaki/audio/pcm_device.hpp> #include <hamigaki/audio/vorbis_file.hpp> #include <boost/iostreams/copy.hpp> namespace audio = hamigaki::audio; namespace io = boost::iostreams; int main() { audio::vorbis_file_source vf("doremi.ogg"); io::copy(vf, audio::pcm_sink(vf.format())); }
WAVEファイルなら、
#include <hamigaki/audio/pcm_device.hpp> #include <hamigaki/audio/wave_file.hpp> #include <boost/iostreams/copy.hpp> namespace audio = hamigaki::audio; namespace io = boost::iostreams; int main() { audio::wave_file_source vf("doremi.wav"); io::copy(vf, audio::pcm_sink(vf.format())); }
ですから、これで使用方法も統一できました。
(wave_sourceはsine_wave_sourceと名前が似ていたのでwave_file_sourceに変更しています。)
このレベルならチュートリアルの最初の例として使えそうです。