私のアプリケーションでは、オーディオを正常に録音し、次の機能を使用して再生しています。
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();
}
}});
どんな助けでも素晴らしいでしょう。グーグルでこれについてはあまり助けはありません。私はほとんど私のアプリを使い果たしましたが、今最後の瞬間に私はこの問題に苦しんでいます..助けてください!!