2017-09-13 115 views
0

我終於想通了,讓來自YouTube我的不和諧機器人玩音頻的方式,使用庫「YT-DL」。創建的歌曲隊列Discord.js

我已經制作了播放歌曲所需的所有命令。 播放,暫停,停止(結束歌曲)。

我做了一個簡單的命令作戲如,播放歌曲,由用戶提供的URL。我怎麼可能創建一個隊列?然後,噹噹前歌曲結束時,讓它播放隊列中的下一首歌曲?

回答

0

你可以簡單地只爲您的歌曲列表,檢查如何創建一個列表,查看這篇文章here。 (你也可以使用一個數組,如果你只是想限制你的隊列的長度,這可能會有所幫助)

(還有一個人爲javascript創建了一個列表函數,它的工作原理類似於.NET的通用列表,你可以檢查出來here

您可能還需要創建一個對象來存儲你的歌曲的細節出現在列表中。

+0

好吧,這工作。 但是,我有一個問題,我如何每次向列表中添加內容,我們都會執行命令? – Norby

+0

對於數組,'的Array.push()'方法,對於列表中,這將是'list.add()'(或Pascal情況下的方法)。 – WQYeo

+0

感謝您的幫助! – Norby

0
var servers = {}; //obj 


    var id = "HgzGwKwLmgM" //"something" 
    //need provide id^

    //example if with array <inside play function> 
    if (!servers[message.guild.id]) servers[message.guild.id] = { 
        queue: [], 
        videodescription: [], 
        videolengh: [], 
        videotitle: [], 
        videothumbnailUrl: [], 
        videourl: [] 
       }; 

    server = servers[message.guild.id]; //method 


    //fetchVideoInfo is part of nmp [email protected] 
    //npm install youtube-info --save 


server.queue.push(id); 

    fetchVideoInfo(id, function (err, videoInfo) { 
    if (err) throw new Error(err); 

    message.reply(' The song: **' + videoInfo.title + "** has been added to the queue list."); 

    server.videolengh.push(videoInfo.duration);//integer 
    server.videothumbnailUrl.push(videoInfo.thumbnailUrl); 
    server.videourl.push(videoInfo.url); 
    server.videotitle.push(videoInfo.title); 
    server.videodescription.push(videoInfo.description); 

    //(videoInfo.description in fetchVideoInfo) returning html 

    }); 

    //        | 
    //later you can call components V like but i will require method 

    console.log(server.queue[0] + "\n"); 
    //or 
    console.log(server.videodescription[0]); 


    //also don't forget to "skip" 
    //example server.queue.shift();