Close and re-creating the codec on every page change caused an audible pop
between pages. Now open_output_stream reuses an already-open stream when the
format matches, the codec is left open on a natural page finish (only torn
down on user stop / back / app close), and a short fade-in/out is applied at
each page boundary. Also fixes pre-existing device API renames (device_find_*
-> device_get_* out-param style).
Docs: record where the Tactility SDK actually lives and that the fresh CDN
0.8.0-dev SDK is broken for this setup (app-module resolution), with the
cached working copy workaround.
- Mp3Player: sdk 0.7->0.8.0-dev, find audio-stream device, open_output with resampler (hz/ch), write via audio_stream_write, close on pause
- BookPlayer: close/open per format change via AudioStreamConfig, write via stream
- VoiceRecorder: input_handle open_input 16k/mono via audio_stream_read, output_handle open_output file rate via write/resampler
- ES8311 native 44100, old direct I2S at 16k caused 4.096MHz MCLK vs 11.29MHz -> fast playback
- Brick game correct because it uses audio-stream resampler path