【发布时间】:2021-10-29 09:52:07
【问题描述】:
所以最近新版本的不和谐机器人 API 与交互和所有这些一起出现在 Node 上。而且,他们还改变了一些其他的东西,不知道为什么。但他们做到了。
当我遇到无法正常工作的问题时,我正试图尝试音频播放代码以了解其工作原理,并可能更新我的一些旧机器人。我一直在关注https://discordjs.guide/voice/voice-connections.html#life-cycle 和https://discordjs.guide/voice/audio-player.html#life-cycle 上的文档,但它们真的不起作用。
只是测试代码如下所示:
const Discord = require('discord.js');
const {token} = require("./config.json");
const { join } = require("path");
const {joinVoiceChannel, createAudioPlayer, createAudioResource, AudioPlayerStatus, VoiceConnectionStatus, SubscriptionStatus, StreamType } = require("@discordjs/voice");
client.on("ready", async () => {
const connection = joinVoiceChannel({
channelId: channel.id,
guildId: channel.guild.id,
adapterCreator: channel.guild.voiceAdapterCreator,
});
const audioPlayer = createAudioPlayer();
const resource = createAudioResource(createReadStream(join(__dirname, "plswork.mp3")));
const subscription = connection.subscribe(audioPlayer);
audioPlayer.play(resource);
audioPlayer.on(AudioPlayerStatus.Playing, () => {
console.log("currently playing");
console.log("resource started:", resource.started);
});
audioPlayer.on('error', error => {
console.error(`Error: ${error.message} with resource ${error.resource.metadata.title}`);
});
audioPlayer.on(AudioPlayerStatus.AutoPaused, () => {
console.log("done?");
});
我创建了一个连接、audioPlayer 和资源,但在订阅到 audioPlayer 的连接并播放资源后,没有播放音频,也没有引发错误(在 AudioPlayer.on("error"...) 中)并且立即调用 AutoPaused 状态。
通过记录资源,我看到 resource.playbackDuration 为 0,但我不知道如何解决这个问题,因为我在 Internet 上找不到太多关于此主题的信息。
【问题讨论】:
-
能否提供控制台日志?
-
另外,你是
requireAudioPlayerStatus吗?例如:const { VoiceConnectionStatus, AudioPlayerStatus } = require('@discordjs/voice'); -
我确实需要它,是的。你想要什么日志?我会着手处理所有内容
-
我不是指 json,我指的是您在运行机器人时收到的控制台输出。需要明确的是:您从
console.log("currently playing")获得输出的位置。 -
还有,请尝试avoid using pastebin 获取这么少的代码
标签: node.js discord discord.js