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