Android 如何在API 21之后使用AudioTrack.setVolume操作音频通道音量

Android 如何在API 21之后使用AudioTrack.setVolume操作音频通道音量,android,audio,smartphone,speaker,Android,Audio,Smartphone,Speaker,我正试图通过我的智能手机上的一个立体声通道(扬声器)复制一个单声道wav文件。我曾经用手来控制这一切 AudioTrack.setStereoVolume(浮点左增益,浮点右增益) 通过将其中一个增益设置为零。查看一段旧代码时,我收到了一条不推荐使用的方法警告,在查看Android SDK文档后,我发现它现在由以下人员完成: public int setVolume(浮点增益) 在API级别21中添加。此API优于SetTereOVolume(float,float),因为它可以更优雅地向下扩展

我正试图通过我的智能手机上的一个立体声通道(扬声器)复制一个单声道wav文件。我曾经用手来控制这一切

AudioTrack.setStereoVolume(浮点左增益,浮点右增益)

通过将其中一个增益设置为零。查看一段旧代码时,我收到了一条不推荐使用的方法警告,在查看Android SDK文档后,我发现它现在由以下人员完成:

public int setVolume(浮点增益)

在API级别21中添加。此API优于SetTereOVolume(float,float),因为它可以更优雅地向下扩展到单声道,向上扩展到立体声以外的多声道内容

我的问题是:

  • 我该如何单独控制通道音量,以便在给定时间只有一个通道复制,而现在我应该使用新版本的方法同时控制两个通道
  • 有没有办法通过Android API检查某个设备是否有立体声或单声道扬声器
  • 是否有其他方法仅通过单个扬声器再现单声道音频

  • 你能回答这个问题吗??