You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:15:39