| 1 | require "coreaudio" |
|---|
| 2 | |
|---|
| 3 | outdevid = CoreAudio.get_default_output_device |
|---|
| 4 | puts "Default Output Device ID = #{outdevid}" |
|---|
| 5 | |
|---|
| 6 | callback = lambda do |devid, now, input, in_time, output, out_time, userdata| |
|---|
| 7 | p out_time |
|---|
| 8 | output.mNumberBuffers.times do |i| |
|---|
| 9 | ptr = output.mBuffers[i].mData.cast!("^C") |
|---|
| 10 | output.mBuffers[i].mDataByteSize.times do |j| |
|---|
| 11 | ptr[j] = 0 |
|---|
| 12 | end |
|---|
| 13 | end |
|---|
| 14 | 0 |
|---|
| 15 | end |
|---|
| 16 | procid = CoreAudio.create_io_proc_id(outdevid, &callback) |
|---|
| 17 | |
|---|
| 18 | p procid |
|---|
| 19 | puts "start" |
|---|
| 20 | CoreAudio.device_start(outdevid, procid) |
|---|
| 21 | puts "sleep" |
|---|
| 22 | sleep 5 |
|---|
| 23 | puts "stop" |
|---|
| 24 | CoreAudio.device_stop(outdevid, procid) |
|---|
| 25 | |
|---|
| 26 | CoreAudio.destroy_io_proc_id(outdevid, procid) |
|---|
| 27 | |
|---|