Следующий код работает правильно и воспроизводит музыкальные файлы на SD-карте.
Я хочу показать предупреждение, если музыкальный файл не существует на SD-карте («не существующий музыкальный файл»).
Что я должен писать для этого?Показать предупреждение о наличии файла на sdcard в android
пожалуйста, помогите мне
это мой код:
public class DoaMatn1 extends Activity {
MediaPlayer player;
SeekBar seek_bar;
Handler seekHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.doamatn);
WebView wv = (WebView) findViewById(R.id.wvdoa);
wv.setBackgroundColor(0x00000000);
wv.setHorizontalScrollBarEnabled(false);
wv.loadUrl("file:///android_asset/doatavasol.html");
WebSettings webSettings = wv.getSettings();
webSettings.setDefaultFontSize(20);
getInit();
seekUpdation();
}
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
File sdcard = Environment.getExternalStorageDirectory();
File audioFile = new File(sdcard.getPath() + "/bluetooth/یه سوال دارم مگه.mp3");
public void getInit() {
seek_bar = (SeekBar) findViewById(R.id.sbdoa);
player = MediaPlayer.create(this,Uri.fromFile(audioFile));
seek_bar.setMax(player.getDuration());
final ImageButton ib =(ImageButton) findViewById(R.id.btnplaydoa);
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// check for already playing
if(player.isPlaying()){
if(player!=null){
player.pause();
// Changing button image to play button
ib.setImageResource(R.drawable.play);
}
}else{
// Resume song
if(player!=null){
player.start();
// Changing button image to pause button
ib.setImageResource(R.drawable.puse);
}
}
}
});
}
Runnable run = new Runnable() {
@Override
public void run() {
seekUpdation();
}
};
public void seekUpdation() {
seek_bar.setProgress(player.getCurrentPosition());
seekHandler.postDelayed(run, 1000);
}
@Override
public void onBackPressed() {
if(player!=null){
if(player.isPlaying()){
player.stop();
}
super.onBackPressed();
}
}}
мой LogCat:
02-09 00:57:24.629: E/AndroidRuntime(3650): FATAL EXCEPTION: main
02-09 00:57:24.629: E/AndroidRuntime(3650): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.aseman14.ertebatbakhoda/com.aseman14.ertebatbakhoda.matn.DoaMatn1}: java.lang.NullPointerException
02-09 00:57:24.629: E/AndroidRuntime(3650): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
02-09 00:57:24.629: E/AndroidRuntime(3650): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
02-09 00:57:24.629: E/AndroidRuntime(3650): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-09 00:57:24.629: E/AndroidRuntime(3650): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
02-09 00:57:24.629: E/AndroidRuntime(3650): at android.os.Handler.dispatchMessage(Handler.java:99)
02-09 00:57:24.629: E/AndroidRuntime(3650): at android.os.Looper.loop(Looper.java:130)
02-09 00:57:24.629: E/AndroidRuntime(3650): at android.app.ActivityThread.main(ActivityThread.java:3687)
02-09 00:57:24.629: E/AndroidRuntime(3650): at java.lang.reflect.Method.invokeNative(Native Method)
02-09 00:57:24.629: E/AndroidRuntime(3650): at java.lang.reflect.Method.invoke(Method.java:507)
02-09 00:57:24.629: E/AndroidRuntime(3650): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
02-09 00:57:24.629: E/AndroidRuntime(3650): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
02-09 00:57:24.629: E/AndroidRuntime(3650): at dalvik.system.NativeStart.main(Native Method)
02-09 00:57:24.629: E/AndroidRuntime(3650): Caused by: java.lang.NullPointerException
02-09 00:57:24.629: E/AndroidRuntime(3650): at com.aseman14.ertebatbakhoda.matn.DoaMatn1.getInit(DoaMatn1.java:49)
02-09 00:57:24.629: E/AndroidRuntime(3650): at com.aseman14.ertebatbakhoda.matn.DoaMatn1.onCreate(DoaMatn1.java:39)
02-09 00:57:24.629: E/AndroidRuntime(3650): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-09 00:57:24.629: E/AndroidRuntime(3650): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
02-09 00:57:24.629: E/AndroidRuntime(3650): ... 11 more
@ user2469133 Там нет необходимости делать это, и сознательно использование исключения для потока управляющей программы - страшное предложение. – Simon