微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

向左或向右耳塞发出嗡嗡声

如何解决向左或向右耳塞发出嗡嗡声

| 有没有一种方法可以为Android手机编写android Java代码,从而通过耳机插孔发送嗡嗡声(我正在考虑某个频率),并且彼此独立地进入耳塞。基本上,我想向左耳塞发出嗡嗡声。我想向正确的耳塞发出嗡嗡声。     

解决方法

        这是一个非常有趣的问题,所以我虽然愿意,但我编写了一个类,以所需的频率生成音调然后播放它,因为无法找到左/右音量部分,所以我无法对其进行测试我的耳机,但应该可以! 希望这可以帮助! 肯尼
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;

public class ToneGen {

    int seconds;
    int sampleRate = 16000;
    double frequency;
    double RAD = 2.0 * Math.PI;
    AudioTrack aTrack;

    /**
     * @param frequency The frequency of the tone
     * @param duration The duration of the tone in seconds
     * @param leftVolume Left volume 0.0f - silent,1.0f full volume
     * @param rightVolume Right volume 0.0f - silent,1.0f full volume
     */
    public ToneGen(double frequency,int duration,float leftVolume,float rightVolume){
        this.frequency = frequency;
        seconds = duration * 2;

        byte[] buffer = new byte[sampleRate * seconds];
        for ( int i=0; i<buffer.length; i++ )
        {
            buffer[i] = (byte)( Math.sin( RAD * frequency / sampleRate * i ) * 127.0 );
        }

        aTrack = new AudioTrack(AudioManager.STREAM_MUSIC,sampleRate,AudioFormat.CHANNEL_CONFIGURATION_STEREO,AudioFormat.ENCODING_PCM_16BIT,buffer.length,AudioTrack.MODE_STATIC);
        aTrack.setStereoVolume(leftVolume,rightVolume);
        aTrack.write(buffer,buffer.length);

    }

    public void Play(){
        aTrack.play();
    }

    public void Stop(){
        aTrack.stop();
    }
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。