版本发布 8
The output sample rate is no longer fixed, but depends on the audio source. If the DAC requires 48 kHz, this can be activated in Audio.h (#define SR_48K). All decoders are now classes. If there is more than one embedded image in a FLAC file, it is now output correctly. e.g. CoverImage: segment 00, pos 00000224, len 00007308 CoverImage: segment 01, pos 00007536, len 00005873 Streams are played back correctly even if the FLAC frame is larger than the OGG frame, http://amp.cesnet.cz:8000/cro-jazz.flac char* null pointers are intercepted to prevent a crash. If an ID3 header is unexpectedly sent during a chunked HLS aac stream, it is recognised and skipped, https://dd782ed59e2a4e86aabf6fc508674b59.msvdn.net/live/S97044836/tbbP8T1ZRPBL/playlist_audio.m3u8 Several issues with "chunked data transfer" have been resolved. fix compiler warnings -Warray-bounds= and no trivial copy-assignment
The output sample rate is no longer fixed, but depends on the audio source. If the DAC requires 48 kHz, this can be activated in Audio.h (#define SR_48K). All decoders are now classes. If there is more than one embedded image in a FLAC file, it is now output correctly. e.g. CoverImage: segment 00, pos 00000224, len 00007308 CoverImage: segment 01, pos 00007536, len 00005873 Streams are played back correctly even if the FLAC frame is larger than the OGG frame, http://amp.cesnet.cz:8000/cro-jazz.flac char* null pointers are intercepted to prevent a crash. If an ID3 header is unexpectedly sent during a chunked HLS aac stream, it is recognised and skipped, https://dd782ed59e2a4e86aabf6fc508674b59.msvdn.net/live/S97044836/tbbP8T1ZRPBL/playlist_audio.m3u8 Several issues with "chunked data transfer" have been resolved.
new event management used "functional callbacks" instead "weak" compiler bindings old ````c++ void audio_info(const char *info){ Serial.print("info "); Serial.println(info); } void audio_id3data(const char *info){ //id3 metadata Serial.print("id3data ");Serial.println(info); } ... ... ```` new ````c++ void my_audio_info(Audio::msg_t m) { Serial.printf("%s: %s\n", m.s, m.msg); } void setup() { Audio::audio_info_callback = my_audio_info; ... ... } ````
http range request ist enabled This allows the jump within a file if the server accepts ranges
OPUS-HYBRID-MODE activated C unique pointer introduced better sync. lyrics
OPUS Hybrid Mode is activated, stations such as https://st01.sslstream.dlf.de/dlf/01/low/opus/stream.opus?aggregator=web work now, The mode is displayed as info: (CELT_ONLY, SILK_ONLY, HYBRID)  Memory leak in VORBIS decoder fixed Better 48KHz I2S output through cubic interpolation (Catmull-Rom)
OPUS Hybrid Mode is activated, stations such as https://st01.sslstream.dlf.de/dlf/01/low/opus/stream.opus?aggregator=web work now. The mode is displayed as info: (CLET ONLY, SILK ONLY, HYBRID)  Memory leak in Vorbis decoder fixed Better 48KHz I2S output through cubic interpolation (Catmull-Rom)
Adruino Version > V3.0.0 PSRAM must be activated The I2S signal is resampled to 48 KHz stereo 16bps