Java 我计时器中的mediaPlayer一直在破坏应用程序
当我运行此代码时:Java 我计时器中的mediaPlayer一直在破坏应用程序,java,android,Java,Android,当我运行此代码时: package com.example.eggtimer; import androidx.appcompat.app.AppCompatActivity; import android.media.MediaPlayer; import android.os.Bundle; import android.os.CountDownTimer; import android.util.Log; import android.view.View; import android
package com.example.eggtimer;
import androidx.appcompat.app.AppCompatActivity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView timeLft;
SeekBar timer;
public void start(View view) {
CountDownTimer countDownTimer = new CountDownTimer(timer.getProgress() * 1000 + 100, 1000) {
@Override
public void onTick(long l) {
updateTimer((int) l / 1000);
}
@Override
public void onFinish() {
Log.i("state", "done");
MediaPlayer hi = MediaPlayer.create(getApplicationContext(),R.raw.sound);
hi.start();
}
}.start();
}
public void updateTimer(int secLft) {
int min = secLft/60;
int sec = secLft - (min*60);
String secS = Integer.toString(sec);
if (sec <= 9) {
secS = "0" + sec;
}
timeLft.setText(Integer.toString(min) + ":" + secS);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timer = findViewById(R.id.timer);
timeLft = findViewById(R.id.timeLft);
timer.setMax(600);
timer.setProgress(30);
timer.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
updateTimer(i);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
}
package com.example.eggtimer;
导入androidx.appcompat.app.appcompat活动;
导入android.media.MediaPlayer;
导入android.os.Bundle;
导入android.os.CountDownTimer;
导入android.util.Log;
导入android.view.view;
导入android.widget.ImageView;
导入android.widget.SeekBar;
导入android.widget.TextView;
公共类MainActivity扩展了AppCompatActivity{
TextView timeLft;
SeekBar定时器;
公共无效开始(视图){
CountDownTimer CountDownTimer=新的CountDownTimer(timer.getProgress()*1000+1001000){
@凌驾
公共空白条(长l){
更新程序((int)l/1000);
}
@凌驾
公共无效onFinish(){
日志i(“状态”、“完成”);
MediaPlayer hi=MediaPlayer.create(getApplicationContext(),R.raw.sound);
嗨,开始();
}
}.start();
}
公共void更新程序(int secLft){
int min=秒/60;
int-sec=secLft-(最小值*60);
字符串秒=整数。toString(秒);
如果(secResources$NotFoundException:File res/raw/sound.MP3
sound.MP3资源未被编译器找到,请确保MP3文件存在于原始文件中。我将格式frim.MP3更改为m4a,现在应用程序确实崩溃,但即使更改名称,也不会播放声音。