Queue & Controls
Tìm hiểu cách sử dụng hệ thống queue mạnh mẽ và các điều khiển phát nhạc để tạo trải nghiệm âm nhạc tuyệt vời cho người dùng.
Queue Management
Quản lý danh sách phát với các tính năng nâng cao
- Add/Remove tracks
 - Queue navigation
 - Search & filter
 - Queue info
 
Playback Controls
Điều khiển phát nhạc linh hoạt và mạnh mẽ
- Skip tracks
 - Shuffle mode
 - Repeat modes
 - Auto-play
 
Audio Controls
Điều khiển âm thanh và chất lượng phát
- Volume control
 - Seek position
 - Pause/Resume
 - Stop
 
Queue Basics
Queue là danh sách các bài hát sẽ được phát. Bạn có thể thêm, xóa, và sắp xếp lại các bài hát trong queue một cách dễ dàng.
1// Thêm bài hát vào queue
2await player.play("Song Name", userId);
3await player.play("https://youtube.com/watch?v=...", userId);
4
5// Thêm nhiều bài hát
6const songs = ["Song 1", "Song 2", "Song 3"];
7for (const song of songs) {
8  await player.queue.add(song, userId);
9}
10
11// Phát queue
12await player.play();Queue Management
Quản lý queue với các phương thức thêm, xóa, chèn và lấy thông tin bài hát.
1// Quản lý queue
2// Thêm bài hát vào cuối queue
3await player.queue.add(track, userId);
4
5// Thêm nhiều bài hát cùng lúc
6await player.queue.addMultiple(tracks, userId);
7
8// Chèn bài hát vào vị trí cụ thể (0 = bài tiếp theo)
9await player.queue.insert(track, 0, userId);
10
11// Xóa bài hát khỏi queue
12const removedTrack = player.queue.remove(2); // Xóa bài ở vị trí 2
13
14// Lấy thông tin queue
15console.log("Queue size:", player.queue.size);
16console.log("Is empty:", player.queue.isEmpty);
17console.log("Current track:", player.queue.currentTrack);
18console.log("Next track:", player.queue.nextTrack);
19
20// Xóa toàn bộ queue
21player.queue.clear();Playback Controls
Điều khiển phát nhạc với các tính năng skip, loop, shuffle và auto-play.
1// Điều khiển phát nhạc
2// Skip bài hiện tại
3player.queue.skip();
4
5// Bật/tắt auto play
6player.queue.autoPlay(true);
7
8// Các chế độ lặp
9player.queue.loop("off");    // Không lặp
10player.queue.loop("track");  // Lặp bài hiện tại
11player.queue.loop("queue");  // Lặp toàn bộ queue
12
13// Xáo trộn queue
14player.queue.shuffle();
15
16// Lấy danh sách bài hát
17const allTracks = player.queue.getTracks();
18const specificTrack = player.queue.getTrack(3); // Lấy bài ở vị trí 3Queue Events
Lắng nghe các sự kiện của queue để tương tác và cập nhật UI.
1// Lắng nghe events của queue
2player.on("queueAdd", (track) => {
3  console.log("Đã thêm:", track.title);
4});
5
6player.on("queueAddList", (tracks) => {
7  console.log("Đã thêm playlist:", tracks.length, "bài hát");
8});
9
10player.on("queueRemove", (track, index) => {
11  console.log("Đã xóa:", track.title, "tại vị trí", index);
12});
13
14player.on("willPlay", (track, upcomingTracks) => {
15  console.log("Sắp phát:", track.title);
16  console.log("Còn lại:", upcomingTracks.length, "bài hát");
17});
18
19player.on("queueEnd", () => {
20  console.log("Hết queue!");
21});API Reference
Tất cả các phương thức và thuộc tính có sẵn trong Queue.
1// API Methods của Queue
2player.queue:
3	add(track: Track): void 
4	addMultiple(tracks: Track[]): void 
5	/** Insert a track at a specific upcoming position (0 = next) */
6	insert(track: Track, index: number): void 
7	/** Insert multiple tracks at a specific upcoming position, preserving order */
8	insertMultiple(tracks: Track[], index: number): void 
9	remove(index: number): Track | null 
10	next(ignoreLoop = false): Track | null 
11	clear(): void 
12	autoPlay(value?: boolean): boolean 
13	loop(mode?: LoopMode): LoopMode 
14	shuffle(): void 
15	get size(): number 
16	get isEmpty(): boolean 
17	get currentTrack(): Track | null 
18	get previousTracks(): Track[] 
19	get nextTrack(): Track | null 
20	willNextTrack(track?: Track): Track | null 
21	getTracks(): Track[] 
22	getTrack(index: number): Track | null