Discord.js v13机器人在Heroku上无法播放网络电台流媒体
Discord.js v13网络电台机器人Heroku部署后播放失败
环境信息
Heroku已配置Buildpack
- heroku/nodejs
- https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git
- https://github.com/xrisk/heroku-opus.git
- https://github.com/OnlyNoob/heroku-buildpack-libsodium.git
项目依赖包
- "@discordjs/opus": "^0.5.3"
- "@discordjs/rest": "^0.5.0"
- "@discordjs/voice": "^0.10.0"
- "discord-api-types": "^0.36.0"
- "discord.js": "^13.8.1"
- "ffmpeg-static": "^4.4.1"
- "libsodium-wrappers": "^0.7.10"
核心播放代码
let voiceChn = message.member.voice.channel; const connection = joinVoiceChannel({ channelId: message.member.voice.channel.id, guildId: message.member.voice.channel.guildId, adapterCreator: message.guild.voiceAdapterCreator, selfDeaf: true }); const player = createAudioPlayer(); let resource = createAudioResource(STREAM_URL); connection.subscribe(player); connection.on(VoiceConnectionStatus.Ready, () => { player.play(resource); });
问题描述
上述代码在本地运行完全正常,但部署到Heroku后无法播放网络电台流。播放器会立即触发idle事件,相关日志如下:
{ status: 'playing', missedFrames: 0, playbackDuration: 120, resource: AudioResource { playStream: OggDemuxer { _readableState: [ReadableState], _events: [Object: null prototype], _eventsCount: 5, _maxListeners: undefined, _writableState: [WritableState], allowHalfOpen: true, _remainder: null, _head: null, _bitstream: null, [Symbol(kCapture)]: false, [Symbol(kCallback)]: null }, edges: [ [Object], [Object] ], metadata: null, volume: undefined, encoder: undefined, audioPlayer: undefined, playbackDuration: 0, started: true, silencePaddingFrames: 5, silenceRemaining: 0 }, onStreamError: [Function: onStreamError] }
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

