私は、押したときにオーディオトラックを再生し、もう一度押すとオーディオトラックを停止するボタンがあります。ボタンをクリックすると、アプリケーションが終了します。なぜ私は考えていない。助けてください!ボタンを使ってオーディオトラックを開始し、オーディオトラックを停止するにはどうすればよいですか?
public void Playbutton(View view) {
File file = new File(Environment.getExternalStorageDirectory(), "test.pcm");
int shortSizeInBytes = Short.SIZE/Byte.SIZE;
int bufferSizeInBytes = (int) (file.length()/shortSizeInBytes);
short[] audioData = new short[bufferSizeInBytes];
try {
InputStream inputStream = new FileInputStream(file);
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
DataInputStream dataInputStream = new DataInputStream(bufferedInputStream);
int i = 0;
while (dataInputStream.available() > 0) {
audioData[i] = dataInputStream.readShort();
i++;
}
dataInputStream.close();
AudioTrack audioTrack = new AudioTrack(
AudioManager.STREAM_MUSIC,
11025,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
bufferSizeInBytes,
AudioTrack.MODE_STREAM);
if (playbuttonstatus){
playBtn.setText(getString(R.string.stop));
audioTrack.play();
audioTrack.write(audioData, 0, bufferSizeInBytes);
playbuttonstatus = false;}
else{
playBtn.setText(getString(R.string.play));
playbuttonstatus = true;
audioTrack.pause();
audioTrack.flush();}
} catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
アプリケーションが終了したときに表示されるエラーを表示します。 –
多分、例外を最初にキャッチしようとします。どのような種類のエラーが発生しているのかを確認してください。 –