iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0
SideProject30

python基礎及數據科學之應用系列 第 28

python基礎及數據科學之應用day 28[pycord資料庫介紹5機械人進入語音聊天室]

  • 分享至 

  • xImage
  •  

day 28:
/images/emoticon/emoticon07.gif
希望瀏覽數可以多點啦,更多人看我的教學後有所增長

什麼是discord音樂機器人

Discord 音樂機器人是一種可以在 Discord 伺服器上的語音頻道中播放音樂的機器人。它允許用戶一起聽音樂、分享播放清單以及控制歌曲的播放。

大部分Discord 音樂機器人可以執行以下功能:

1.加入和離開語音頻道:機器人可以連接到Discord伺服器上的語音頻道,並根據指令離開。
2.播放音樂:機器人可以播放各種來源的音樂,例如 YouTube、SoundCloud 或本地檔案。它通常支援播放特定歌曲、從播放清單播放或播放隨機歌曲的命令。
3.音量控制:機器人允許使用者調整音樂播放的音量。

Discord 音樂機器人在 Discord 上很受歡迎,它增強了用戶體驗,成員能夠在聊天時一起聽音樂創。

Discord機器人加入與離開語音頻道

(這些沒有很難,但我花了很多時間去處理。)

範例:
import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.voice_states = True

bot = discord.Bot()

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name} ({bot.user.id})')
    print('Bot is ready to receive commands')

@bot.command()
async def join(ctx):
    channel = ctx.author.voice.channel
    await channel.connect()
    await ctx.send(f"Joined voice channel.({ctx.author.voice.channel.name})")

@bot.command()
async def leave(ctx):
    voice_client = ctx.guild.voice_client
    await voice_client.disconnect()
    await ctx.send(f"Joined voice channel.({ctx.author.voice.channel.name})")
      
bot.run("token")

執行結果:
https://ithelp.ithome.com.tw/upload/images/20231013/20163173cR1xGrq0IF.png

接着便解釋這段程式

Discord.py 從 1.5 版本開始引入了intent,這有助於控制你的機器人可以存取的資料。意圖允許您指定您的機器人將接收哪些類型的事件。為了接收語音相關事件並存取語音狀態資訊(例如使用者所在的語音通道),您需要啟用意圖voice_states。

ctx.author.voice.channel.name

語音頻道名字

channel.connect()

進入語音頻道

voice_client.disconnect()

離開語音頻道

/images/emoticon/emoticon21.gif
今天的內容我也認為很少,但真的沒有其他辦法,因為今天我花了大量時間研究ytdl,接着又發現這個模組不能使用,之後又去了pycord的官方網站參考音樂機械人,後來有人跟我說那個是舊版本,不能使用,所以沒有時間增加播放音樂的內容,之後應該會補上,敬請見諒。如果覺得我的文章對你有幫助或有更好的建議,可以追蹤我和不妨在留言區提出,我們明天再見。(明天應該會寫chat bot)

reference:
https://poe.com/
https://guide.pycord.dev/voice/playing


上一篇
python基礎及數據科學之應用day 27[pycord資料庫介紹4寶可夢大師pvp資料]
下一篇
python基礎及數據科學之應用day 29[聊天機械人]
系列文
python基礎及數據科學之應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言