在我的应用程序中,我已经成功录制了音频,现在我正在使用以下功能播放它:
public void playfile()
{
System.out.println("Play Pressed");
speechLength = (int)(file.length()/2);
speech2 = new short[speechLength];
try
{
// Create a DataInputStream to read the audio data back from the saved file.
InputStream is = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(is);
DataInputStream dis = new DataInputStream(bis);
int i = 0;
while(i < speechLength)
{
speech2[i] = dis.readShort();
i++;
}
// Close the input streams.
is.close();
bis.close();
dis.close();
// Create a new AudioTrack object using the same parameters as the AudioRecord
// object used to create the file.
audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
16000,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT,
bufferSizeAT,
AudioTrack.MODE_STREAM);
//Start playback
runner.start();
//Updating Progress Bar on UI Thread
//updateProgressBar();
} //main try
catch (Throwable t){}
}
Thread runner= new Thread (){
public void run()
{
// Do stuff.
audioTrack.play();
audioTrack.setStereoVolume(50, 50);
audioTrack.write(speech2, 0, speech2.length);
}
};
但是,当单击按钮时,我想暂停正在播放的录音,它会暂停,但在恢复时没有任何反应。以下是相同的代码:
final Button p3_button=(Button)myView.findViewById(R.id.btn_play);
p3_button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
if(p3_button.getText().equals("Pause"))
{
p3_button.setText("Resume");
audioTrack.pause();
}
else if(p3_button.getText().equals("Resume"))
{
p3_button.setText("Pause");
audioTrack.play();
}
else
{
p3_button.setText("Pause");
count = 0;
isPlayPressed = true;
playing = true;
playfile();
}
}});
任何帮助都会很棒。谷歌上对这个没有太多帮助。我几乎完成了我的应用程序,但现在在最后一刻我遇到了这个问题..请帮助我!