Javascript TypeError:this.inputMedia.pipe不是函数

Javascript TypeError:this.inputMedia.pipe不是函数,javascript,typeerror,discord,discord.js,Javascript,Typeerror,Discord,Discord.js,我有一个不和谐的机器人。我希望这样,当我说几个短语中的一个时,它将加入发送消息的用户的语音频道,播放随机声音,然后离开。它使用和npm库。这是代码。请注意,在另一个文件server.js中,它需要这个文件,并且不需要client.on('message',randomSound) 然后,在play-url.js中: exports.playUrl = function(voiceChannel, soundUrl, options) { // If messange sender is

我有一个不和谐的机器人。我希望这样,当我说几个短语中的一个时,它将加入发送消息的用户的语音频道,播放随机声音,然后离开。它使用和npm库。这是代码。请注意,在另一个文件server.js中,它需要这个文件,并且不需要
client.on('message',randomSound)

然后,在play-url.js中:

exports.playUrl = function(voiceChannel, soundUrl, options) {

    // If messange sender is in a voice channel
    if (voiceChannel) {
      voiceChannel
        // Join it
        .join()
        .then(connection => {
          // Play the sound
          const sound = connection.playArbitraryInput(soundUrl, options);
          sound.on('end', () => {
            voiceChannel.leave();
            console.log('Done playing');
          });
        })
        .catch(console.error);
    }
}
由于某种原因,我得到了这个错误

TypeError: this.inputMedia.pipe is not a function

    at FfmpegProcess.connectStream (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism-media/0.0.3/node_modules/prism-media/src/transcoders/ffmpeg/FfmpegProcess.js:73:21)

    at new FfmpegProcess (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism-media/0.0.3/node_modules/prism-media/src/transcoders/ffmpeg/FfmpegProcess.js:28:14)

    at FfmpegTranscoder.transcode (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism-media/0.0.3/node_modules/prism-media/src/transcoders/ffmpeg/Ffmpeg.js:34:18)

    at MediaTranscoder.transcode (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism-media/0.0.3/node_modules/prism-media/src/transcoders/MediaTranscoder.js:27:31)

    at Prism.transcode (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism-media/0.0.3/node_modules/prism-media/src/Prism.js:13:28)

    at AudioPlayer.playUnknownStream (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/discord.js/11.4.2/node_modules/discord.js/src/client/voice/player/AudioPlayer.js:97:35)

    at VoiceConnection.playArbitraryInput (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/discord.js/11.4.2/node_modules/discord.js/src/client/voice/VoiceConnection.js:458:24)

at voiceChannel.join.then.connection (/app/play-url.js:10:36)

    at <anonymous>

    at process._tickCallback (internal/process/next_tick.js:189:7)
TypeError:this.inputMedia.pipe不是函数
在FfmpegProcess.connectStream(/rbd/pnpm volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism media/0.0.3/node_modules/prism media/src/transcoders/ffmpeg/FfmpegProcess.js:73:21)
在新的FfmpegProcess(/rbd/pnpm volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism media/0.0.3/node_modules/prism media/src/transcoders/ffmpeg/FfmpegProcess.js:28:14)
在FfmpegTranscoder.transcode(/rbd/pnpm volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism media/0.0.3/node_modules/prism media/src/transcoders/ffmpeg/ffmpeg.js:34:18)
在MediaTranscoder.transcode(/rbd/pnpm volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism media/0.0.3/node_modules/prism media/src/transcoders/MediaTranscoder.js:27:31)
在Prism.transcode(/rbd/pnpm volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/Prism media/0.0.3/node_modules/Prism media/src/Prism.js:13:28)
在AudioPlayer.playunnownstream(/rbd/pnpm volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/discord.js/11.4.2/node_modules/discord.js/src/client/voice/player/AudioPlayer.js:97:35)
在VoiceConnection.play任意输入(/rbd/pnpm volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/discord.js/11.4.2/node_modules/discord.js/src/client/voice/VoiceConnection.js:458:24)
在voiceChannel.join.then.connection(/app/play url.js:10:36)
在
在进程中。_tick回调(内部/process/next_tick.js:189:7)

我意识到了这个问题;函数的作用是:输出一个包含所选对象的数组,而不仅仅是对象本身。这是一种奇怪的方法,但我通过改变

playUrl(message.member.voiceChannel,soundUrl);

playUrl(message.member.voiceChannel,soundUrl[0]);

你的discord.js版本是什么。您可以通过在我的
包.json
中执行
console.log(require('discord.js').version)
获得最简单的方法,它是
^11.4.2
,在上面的版本中,它还输出
11.4.2
。我想最好的修复方法是升级到d.js master(它有一个完整的语音重写,可以修复很多问题),这包括打破改变
TypeError: this.inputMedia.pipe is not a function

    at FfmpegProcess.connectStream (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism-media/0.0.3/node_modules/prism-media/src/transcoders/ffmpeg/FfmpegProcess.js:73:21)

    at new FfmpegProcess (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism-media/0.0.3/node_modules/prism-media/src/transcoders/ffmpeg/FfmpegProcess.js:28:14)

    at FfmpegTranscoder.transcode (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism-media/0.0.3/node_modules/prism-media/src/transcoders/ffmpeg/Ffmpeg.js:34:18)

    at MediaTranscoder.transcode (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism-media/0.0.3/node_modules/prism-media/src/transcoders/MediaTranscoder.js:27:31)

    at Prism.transcode (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/prism-media/0.0.3/node_modules/prism-media/src/Prism.js:13:28)

    at AudioPlayer.playUnknownStream (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/discord.js/11.4.2/node_modules/discord.js/src/client/voice/player/AudioPlayer.js:97:35)

    at VoiceConnection.playArbitraryInput (/rbd/pnpm-volume/a60d0461-d164-4ade-92da-e09aca748da0/node_modules/.registry.npmjs.org/discord.js/11.4.2/node_modules/discord.js/src/client/voice/VoiceConnection.js:458:24)

at voiceChannel.join.then.connection (/app/play-url.js:10:36)

    at <anonymous>

    at process._tickCallback (internal/process/next_tick.js:189:7)