In my testing, there is no way to accurately know how far into a MP3 file you're currently playing. You can use monotonic time, but that can have drift versus the audio playback system, which may not be running at exactly the expected sample rate. To allow syncing animation with timestamps in a MP3 file, this presents a new property, decoded_samples, that records the number of audio samples sent out of the decoder. While this may not be a completely accurate time, due to mixer delays, it's much better position that the monotonic clock difference. Implementation is keeping track of this value in the mp3file structure and adding to it whenever data is sent out of the decoder. The property implementation was a copy/paste from current properties in the audiomp3 files.
CircuitPython ============= .. image:: https://s3.amazonaws.com/adafruit-circuit-python/CircuitPython_Repo_header_logo.png |Build Status| |Doc Status| |License| |Discord| |Weblate| `circuitpython.org <https://circuitpython.org>`__ \| `Get CircuitPython <#get-circuitpython>`__ \| `Documentation <#documentation>`__ \| `Contributing <#contributing>`__ \| `Branding <#branding>`__ \| `Differences from Micropython <#differences-from-micropython>`__ \| `Project Structure <#project-structure>`__ **CircuitPython** is a *beginner friendly*, open source version of Python for tiny, inexpensive computers called microcontrollers. This package contains the "stubs", or type definitions for CircuitPython. With some advanced editors and other tools, this information can be identify TypeErrors, AttributeErrors, and other problems before you deploy your code to a device and can even help autocomplete your code. .. |Build Status| image:: https://github.com/adafruit/circuitpython/workflows/Build%20CI/badge.svg :target: https://github.com/adafruit/circuitpython/actions?query=branch%3Amain .. |Doc Status| image:: https://readthedocs.org/projects/circuitpython/badge/?version=latest :target: http://circuitpython.readthedocs.io/ .. |Discord| image:: https://img.shields.io/discord/327254708534116352.svg :target: https://adafru.it/discord .. |License| image:: https://img.shields.io/badge/License-MIT-brightgreen.svg :target: https://choosealicense.com/licenses/mit/ .. |Weblate| image:: https://hosted.weblate.org/widgets/circuitpython/-/svg-badge.svg :target: https://hosted.weblate.org/engage/circuitpython/?utm_source=widget
Languages
C
90.2%
Python
7.4%
Makefile
1.8%
Shell
0.2%