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

Windows通过C#/.NET向Android流传输系统音频时出现强烈嘶嘶噪音的问题排查及工具咨询

Windows通过C#/.NET向Android流传输系统音频时出现强烈嘶嘶噪音的问题排查及工具咨询

看起来你已经迈出了跨设备音频流开发的第一步,遇到这种全是嘶嘶噪音的问题确实很让人头疼,我帮你梳理几个最可能的原因和排查方向,再给你推荐一些能简化开发的工具:

一、核心问题排查方向

1. 字节序(Endianness)不匹配

Windows系统默认使用小端字节序存储16位音频采样(低字节在前),而Android的AudioTrack如果没有明确指定字节序,可能会默认按大端解析,这会直接导致所有采样值被错误解读,产生严重的嘶嘶噪音。

  • 快速验证:修改C#端ApplyVolumeReduction方法里的字节写入顺序,把小端改成大端:
    // 替换原来的字节写入代码
    buffer[i] = (byte)((sample >> 8) & 0xFF);
    buffer[i + 1] = (byte)(sample & 0xFF);
    
    或者在Android端处理:用ByteBuffer设置字节序为LITTLE_ENDIAN后再解析采样数据。

2. TCP流式传输的边界问题

TCP是无边界的字节流,如果你在Android端每次读取的字节数不是音频帧的整数倍(双声道16位音频每帧是4字节:2字节/采样 × 2声道),就会导致采样值错位,进而产生大量噪音。

  • 修复方案:
    • 在C#发送音频数据前,先发送一个整数表示当前数据包的字节长度;
    • Android端先读取这个长度值,再精准读取对应字节数的音频数据,避免错位。

3. 音量处理的溢出与代码笔误

你代码里的ApplyVolumeReduction方法存在两个潜在问题:

  • 溢出未钳位:直接计算sample = (short)(sample * volumeLevel)可能会超出short的取值范围(-32768 ~ 32767),导致采样值错乱;
  • 代码笔误:e buffer[i] = (byte)(sample & 0xFF);这行多了个e,如果没修复的话会引发运行时错误,导致数据异常。
  • 修复后的代码:
    private static void ApplyVolumeReduction(byte[] buffer, int length, float volumeLevel)
    {
        for (int i = 0; i < length - 1; i += 2)
        {
            short sample = (short)(buffer[i] | (buffer[i + 1] << 8));
            sample = (short)Math.Clamp(sample * volumeLevel, short.MinValue, short.MaxValue);
            if (Math.Abs(sample) < 50)
            {
                sample = 0;
            }
            buffer[i] = (byte)(sample & 0xFF);
            buffer[i + 1] = (byte)((sample >> 8) & 0xFF);
        }
    }
    

4. 音频格式细节不匹配

虽然你确认了采样率、位深和声道数,但还要确保:

  • 两端都使用无压缩PCM编码(Windows端NAudio转的是PCM,Android端AudioTrack要设置ENCODING_PCM_16BIT);
  • Android端声道配置为CHANNEL_OUT_STEREO,和Windows端的双声道对应。

二、简化开发的工具推荐

如果不想自己处理底层传输和播放的细节,可以试试这些成熟的方案:

  • C#端:使用SignalR来实现实时音频流传输,它会自动处理TCP流的边界、重连和可靠性,不用自己写原生TCP的逻辑;
  • Android端:用ExoPlayer替代原生AudioTrack,它对PCM流的播放支持更稳定,能自动处理格式适配和同步问题;
  • 跨平台流式方案:采用gRPC的双向流式传输,C#和Kotlin都有完善的gRPC客户端库,能更可靠地传输音频数据,减少手动处理的bug。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 13:55:27