网易云外链:
http://music.163.com/song/media/outer/url?id=440353010.mp3
import mp3play def mp3play_music(url): """ #说一下亮点,就是支持播放在线的歌曲,也支持本地 1.歌曲路径不可以有中文 2.定义的这个mp3对象必须设置为全局变量,否则直接函数结束,不会播放歌曲 设置为全局变量,程序结束,他也得把这首歌唱完(只会唱一遍) 3.可以获取歌曲有多长 单位m和ms 4.可以停止,也可以播放 5.声音参数0-100 6.play(0,4000) 播放的片段 单位是ms 7.pause()暂停 8.unpause 解除暂停 9.他判断是否播放跟是否暂停好像不对。建议不要用。 """ import mp3play global mp3 mp3 = mp3play.load(url) mp3.volume(100) mp3.play() print(mp3.ispaused(),mp3.isplaying()) time.sleep(2) mp3.pause() print(mp3.ispaused(),mp3.isplaying()) time.sleep(2) mp3.unpause() print(mp3.ispaused(),mp3.isplaying()) def pygame_music(url): """ 不喜欢他是因为他,只支持本地歌曲,不可以在线播放 优点:可以循环播放歌曲哦 支持中文路径 但是你如果不能播放,那就是你下载歌曲的时候格式错误 """ import os import time import pygame pygame.mixer.init() pygame.mixer.music.load(url) pygame.mixer.music.set_volume(0.5) pygame.mixer.music.play(-1) pygame.mixer.music.fadeout(1) url_loc="F://最美的伤口DJ小鱼儿.mp3" url_onl="http://m701.music.126.net/20200727185101/76794d0c48b82ba158b2d139f2cc6661/jdymusic/obj/w5zDlMODwrDDiGjCn8Ky/2180586519/98b2/4d51/b6d3/c8c65de6a0bf053a2cd94d1f9473d069.mp3" url="E://python/music/a.mp3" s="F://吴森.mp3" k=s.encode("utf-8").decode("gbk") print(k) #mp3play_music("F://c.mp3") pygame_music("F://a.mp3") """ http://www.pygame.org/docs/ref/music.html pygame.mixer.music pygame模块,用于控制流音频 pygame.mixer.music.load 加载音乐文件进行播放 pygame.mixer.music.unload 卸载当前加载的音乐以释放资源 pygame.mixer.music.play 开始播放音乐流 pygame.mixer.music.rewind 重新开始音乐 pygame.mixer.music.stop 停止音乐播放 pygame.mixer.music.pause 暂时停止音乐播放 pygame.mixer.music.unpause 恢复暂停的音乐 pygame.mixer.music.fadeout 淡出后停止音乐播放 pygame.mixer.music.set_volume 设定音乐音量 pygame.mixer.music.get_volume 取得音乐音量 pygame.mixer.music.get_busy 检查音乐流是否正在播放 pygame.mixer.music.set_pos 设定位置 pygame.mixer.music.get_pos 获取音乐播放时间 pygame.mixer.music.queue 将声音文件排队以跟随当前声音 pygame.mixer.music.set_endevent 播放停止时让音乐发送事件 pygame.mixer.music.get_endevent 获取播放停止时频道发送的事件 音乐模块与 pygame.mixerpygame模块,用于加载和播放声音。使用音乐模块控制混音器中音乐的播放。 音乐播放和常规声音播放之间的区别在于,音乐是流式传输的,永远不会一次全部加载。混音器系统一次仅支持单个音乐流。 请注意,MP3支持有限。在某些系统上,不支持的格式可能会使程序崩溃e.g。Debian Linux。考虑OGG改为使用。 pygame.mixer.music.load() 加载音乐文件进行播放 加载(文件名)->无 负载(对象)->无 这将加载音乐文件名/文件对象并准备播放。如果音乐流已经在播放,它将停止。这不会开始播放音乐。 pygame.mixer.music.unload() 卸载当前加载的音乐以释放资源 unload()->无 这将关闭诸如文件之类的资源,以加载任何音乐。 pygame 2.0.0的新功能。 pygame.mixer.music.play() 开始播放音乐流 播放(循环= 0,开始= 0.0,渐变_毫秒= 0)->无 这将播放加载的音乐流。如果音乐已经在播放,它将重新启动。 参数: 循环(int)-(可选)重复播放音乐多少次。设置为5将播放五次音乐。设置为-1可使音乐无限重复。 start(float)-(可选)音乐开始播放的位置。起始位置取决于播放音乐的格式。 MP3并将OGG位置作为时间(以秒为单位)。对于MOD 音乐,它是样式订单号。如果无法设置起始位置,则传递起始位置将引发NotImplementedError。 fade_ms(int)-(可选)使音乐以0音量开始播放,并在给定时间内逐渐变到最大音量。样本可以在淡入完成之前结束。在pygame 2.0中添加。 pygame.mixer.music.rewind() 重新开始音乐 rewind()->无 将当前音乐的播放重设为开头。 pygame.mixer.music.stop() 停止音乐播放 stop()->无 如果正在播放音乐,则停止播放。它不会卸载音乐。 pygame.mixer.music.pause() 暂时停止音乐播放 pause()->无 暂时停止播放音乐流。可以使用该pygame.mixer.music.unpause()功能恢复 。 pygame.mixer.music.unpause() 恢复暂停的音乐 unpause()->无 暂停后,它将恢复音乐流的播放。 pygame.mixer.music.fadeout() 淡出后停止音乐播放 淡出(时间)->无 淡出并停止当前正在播放的音乐。 参数: time(int)-音乐音量在停止之前逐渐消失的时间(以毫秒为单位)。 请注意,此功能将在音乐淡出之前一直阻塞。致电fadeout()和 set_volume()在这段时间内将无效。如果使用设置了事件set_endevent(),则音乐消失后将调用该事件 。 pygame.mixer.music.set_volume() 设定音乐音量 set_volume(volume)->无 设置音乐播放的音量。 参数: volume(float)-value参数应在0.0到1.0之间。加载新音乐后,音量将重设为全音量。 pygame.mixer.music.get_volume() 取得音乐音量 get_volume()->值 返回调音台的当前音量。该值将在0.0到1.0之间。 pygame.mixer.music.get_busy() 检查音乐流是否正在播放 get_busy()->布尔 当音乐流正在播放时,返回True。音乐空闲时,它返回False。即使音乐暂停,它也会返回True。 pygame.mixer.music.set_pos() 设定位置 set_pos(pos)->无 这将在音乐文件中设置开始播放的位置。浮点数(或可以转换为浮点数的数字)“ pos”的含义取决于音乐格式。 对于MOD文件,pos是模块中的整数模式编号。因为OGG它是从声音开始的绝对位置(以秒为单位)。对于MP3文件,它是距当前位置的相对位置(以秒为单位)。要在MP3 文件中进行绝对定位,请先调用rewind()。 不支持其他文件格式。与早期版本相比,新版本的SDL_mixer具有更好的定位支持。如果特定格式不支持定位,则会引发SDLError。 set_pos()强调SDL_mixer函数的函数调用 Mix_SetMusicPosition。 pygame 1.9.2的新功能。 pygame.mixer.music.get_pos() 获取音乐播放时间 get_pos()->时间 这将获取音乐已播放的毫秒数。返回的时间仅表示音乐播放了多长时间;它不考虑任何起始位置偏移。 pygame.mixer.music.queue() 将声音文件排队以跟随当前声音 队列(文件名)->无 这将加载声音文件并将其排队。当前声音自然结束后,将开始排队声音文件。一次只能排队一个声音。在另一个声音排队时排队一个新声音将导致该新声音成为排队声音。另外,如果当前声音停止或更改,则排队的声音将丢失。 以下示例将播放巴赫音乐六次,然后播放莫扎特音乐一次: pygame.mixer.music.load('bach.ogg') pygame.mixer.music.play(5) # Plays six times, not five! pygame.mixer.music.queue('mozart.ogg') pygame.mixer.music.set_endevent() 播放停止时让音乐发送事件 set_endevent()->无 set_endevent(type)->无 当音乐播放完毕时,这会使pygame发出信号(通过事件队列)。该参数确定将排队的事件的类型。 每当音乐结束时(不仅是第一次),事件都会排队。若要停止事件排队,请不带任何参数调用此方法。 pygame.mixer.music.get_endevent() 获取播放停止时频道发送的事件 get_endevent()->类型 返回每次音乐完成播放时将发送的事件类型。如果没有结束事件,函数将返回pygame.NOEVENT。 """ #发现了一个 获取音乐时长的库 """ 1.音乐 ,电影,都可以获取信息 """ from mutagen.mp3 import MP3 audio=MP3("F://a.mp3") print(audio.info.length) print(audio.filename) print(audio.info.pprint())
新加一个模块playsound
from playsound import playsound #只有播放功能 #音质非常好 #不可以有中文路径 #本地在线都支持 url = "E://python/music/dongmian.mp3" url = "http://m10.music.126.net/20200815213352/d4b242f153001d2f63dc00302323539d/ymusic/e33e/ce89/f6b0/03021c4140edc953808280ac78bd35be.mp3" playsound(url)