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

Discord.js播放本地音频正常,播放远程URL无声音问题求助

Discord.js 远程音频URL无声音问题排查方案

核心排查步骤

1. 验证流媒体URL可用性

直接在浏览器或本地音频播放器打开目标URL https://streams.ilovemusic.de/iloveradio2.mp3,确认:

  • 音频能正常播放
  • 没有地域限制、访问权限问题
  • 服务器没有返回4xx/5xx错误

2. 添加错误监听(关键调试步骤)

当前代码缺少错误捕获逻辑,无法定位问题根源,必须添加以下监听:

// 播放器错误监听
player.on('error', error => {
  console.error('播放器错误:', error.stack);
});

// 音频流错误监听
resource.playStream.on('error', error => {
  console.error('音频流错误:', error.stack);
});

3. 检查依赖版本与完整性

  • 更新/回退@discordjs/voice:该库近期更新可能导致流媒体兼容性问题,可尝试回退到上月正常运行的版本,或更新至最新稳定版:
    npm install @discordjs/voice@latest
    
  • 确保音频处理依赖完整:远程MP3需要FFmpeg转码,安装缺失的依赖:
    npm install @discordjs/opus ffmpeg-static
    

4. 监听连接与播放状态

确认语音连接和播放器是否处于正常工作状态:

// 语音连接状态监听
connection.on(VoiceConnectionStatus.Ready, () => {
  console.log('语音连接已就绪');
});

connection.on(VoiceConnectionStatus.Disconnected, () => {
  console.log('语音连接断开');
});

// 播放器状态监听
player.on(AudioPlayerStatus.Playing, () => {
  console.log('开始播放音频');
});

player.on(AudioPlayerStatus.Idle, () => {
  console.log('播放空闲/结束');
});

5. 尝试自定义请求头获取流

部分流媒体服务器会拒绝无User-Agent的请求,用node-fetch手动获取流并传入:

const fetch = require('node-fetch');
const { PassThrough } = require('stream');

// 替换原resource创建代码
const response = await fetch("https://streams.ilovemusic.de/iloveradio2.mp3", {
  headers: {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
  }
});

if (!response.ok) throw new Error(`请求失败: ${response.statusText}`);

const stream = new PassThrough();
response.body.pipe(stream);
const resource = createAudioResource(stream, { inlineVolume: true, inputType: StreamType.Arbitrary });

6. 调整StreamType参数

尝试更换inputType参数,适配MP3流媒体:

const resource = createAudioResource("https://streams.ilovemusic.de/iloveradio2.mp3", { 
  inlineVolume: true,
  inputType: StreamType.Arbitrary // 或尝试StreamType.Mpeg
});

内容的提问来源于stack exchange,提问作者Haiz Ans

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:17:35