audioTrack play() 只播放一次

2024-05-03

第一次使用Android的AudioTrack。 我创建了一个 AndroidAudioDevice 类。我用这个构造函数初始化它:

 public AndroidAudioDevice( ){  // constructor
           Log.i("Audio", "constructor");
           int minSize =AudioTrack.getMinBufferSize( SAMPLE_RATE, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT );        
           track = new AudioTrack( AudioManager.STREAM_MUSIC, SAMPLE_RATE, 
                                                AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 
                                                minSize, AudioTrack.MODE_STATIC);

           createSample();
           track.write( buffer, 0, buffer.length );
       };

(SAMPLE_RATE 设置为 44100)。

我的主要活动只有一个按钮,它调用

public void playSound(){
           track.play();
           Log.i("Audio", "playState: " + track.getPlayState());
       };

this works find BUT ONLY ONCE! If I press the button again no sound anymore. 

顺便说一句:Log.i 显示“3”表示播放状态

知道为什么这只有效一次吗?提前致谢


状态 3 是PLAYSTATE_PLAYING http://developer.android.com/reference/android/media/AudioTrack.html#PLAYSTATE_PLAYING。我会尝试打电话stop() http://developer.android.com/reference/android/media/AudioTrack.html#stop%28%29 or 重新加载静态数据 http://developer.android.com/reference/android/media/AudioTrack.html#reloadStaticData%28%29打电话之前play第二次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

audioTrack play() 只播放一次 的相关文章

随机推荐