audio
Abstract audio object, which can be passed in as a parameter or directly use its method to play audio
Module function
Constructor
Construct an Audio
object
audio.Audio(array=None, path=None, points=1024)
Parameters
The interface can pass in a parameter, each parameter will determine a different audio type
array
:bytearray
type data, which can be converted into audio objects, the default isNone
path
: Open audio file path, currently only supportswav
format, default isNone
, Note The keywordpath
,audio.Audio("/sd/1.wav" needs to be marked) )
This is wrong! !audio.Audio(path = "/sd/1.wav")
is correctpoints
: Open up an audio buffer with points sampling points, one sampling point is 32bit. If it is 0, the buffer will not be opened, and the default is 1024.
return value
Returns an Audio
object
to_bytes: bytes conversion function
Convert the audio data in the audio object to an object of type bytearray
audio_data = test_audio.to_bytes()
Parameters
no
return value
The returned audio data bytearray
object
play_process: Play preprocessing function
It is used to preprocess audio objects. The audio file needs to be parsed before playing, so preprocessing is required. Here you need to pass in an I2S device for playback
wav_info = test_audio.play_process(i2s_dev)
Parameters
i2s_dev
: i2s device for playback
return value
The header information of the wav file, list
type, are numchannels
(number of channels), samplerate
(sampling rate), byterate
(number of data bytes per second = samplerate * numchannels * bitspersample / 8 ), blockalign
(the number of bytes required for each sample = numchannels * bitspersample / 8), bitspersample
(the number of bits stored in each sample, 8: 8bit, 16: 16bit, 32: 32bit), datasize
(audio data length)
play: play function
Read audio files and parse them for playback, generally used with loop
Parameters
no
return value
None
: The format does not support playback0
: End of playback1
: Now playing
finish: Audio post-processing function
To complete the audio playback, this function must be called after the playback is completed to recover the resources allocated by the bottom layer
Parameters
no
return value
no
Routine
Play wav
audio
from fpioa_manager import *
from Maix import I2S, GPIO
import audio
# disable wifi
fm.register(8, fm.fpioa.GPIO0)
wifi_en=GPIO(GPIO.GPIO0,GPIO.OUT)
wifi_en.value(0)
# register i2s(i2s0) pin
fm.register(34,fm.fpioa.I2S0_OUT_D1)
fm.register(35,fm.fpioa.I2S0_SCLK)
fm.register(33,fm.fpioa.I2S0_WS)
# init i2s(i2s0)
wav_dev = I2S(I2S.DEVICE_0)
# init audio
player = audio.Audio(path = "/sd/6.wav")
player.volume(40)
# read audio info
wav_info = player.play_process(wav_dev)
print("wav file head information: ", wav_info)
# config i2s according to audio info
wav_dev.channel_config(wav_dev.CHANNEL_1, I2S.TRANSMITTER,resolution = I2S.RESOLUTION_16_BIT ,cycles = I2S.SCLK_CYCLES_32, align_mode = I2S.RIGHT_JUSTIFYING_MODE)
wav_dev.set_sample_rate(wav_info[1])
# loop to play audio
while True:
ret = player.play()
if ret == None:
print("format error")
break
elif ret==0:
print("end")
break
player.finish()