Micropython学习交流群 学习QQ群:786510434 提供多种固件下载和学习交流。

Micropython-扇贝物联 QQ群:31324057 扇贝物联是一个让你与智能设备沟通更方便的物联网云平台

Micropython学习交流群 学习QQ群:468985481 学习交流ESP8266、ESP32、ESP8285、wifi模块开发交流、物联网。

Micropython老哥俩的IT农场分享QQ群:929132891 为喜欢科创制作的小白们分享一些自制的计算机软硬件免费公益课程,由两位多年从事IT研发的中年大叔发起。

Micropython ESP频道

micropython esp32 MAX98357 播放网络音乐支持调整音量


import network
import urequests
import ustruct
import machine
import time

# WiFi配置
SSID = 'NBWIFI2'
PASSWORD = 'z7758521'

# MP3文件URL
MP3_URL = 'http://doc.itprojects.cn/0006.zhishi.esp32/01.download/audio/chaojimali.wav'

# 连接WiFi
def connect_wifi(ssid, password):
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(ssid, password)
    while not wlan.isconnected():
        pass
    print('WiFi连接成功:', wlan.ifconfig())

# 初始化I2S
def init_i2s():
    i2s = machine.I2S(
        0,
        sck=machine.Pin(10), #BCLK
        ws=machine.Pin(9), #LRC
        sd=machine.Pin(11), #DIN
        mode=machine.I2S.TX,
        bits=16,
        format=machine.I2S.MONO,
        rate=22000,
        ibuf=20000
    )
    return i2s

# 调整音量
def adjust_volume(data, volume):
    samples = ustruct.unpack('<' + 'h' * (len(data) // 2), data)
    adjusted_samples = [int(sample * volume) for sample in samples]
    adjusted_data = ustruct.pack('<' + 'h' * len(adjusted_samples), *adjusted_samples)
    return adjusted_data

# 播放MP3文件
def play_mp3(url, i2s, volume=1.0):
    response = urequests.get(url)
    #response.raw.read(44)  # 跳过开头的44字节音频文件头信息
    if response.status_code == 200:
        while True:
            data = response.raw.read(1024)
            if not data:
                break
            adjusted_data = adjust_volume(data, volume)
            i2s.write(adjusted_data)
    response.close()

# 主程序
def main():
    connect_wifi(SSID, PASSWORD)
    i2s = init_i2s()
    volume = 1.0  # 设置音量,范围为0.0到1.0
    play_mp3(MP3_URL, i2s, volume)

if __name__ == '__main__':
    main()



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号

执行时间: 0.0083708763122559 seconds