hallo,
ich beschäftige mich momentan mit einem musikplayer welches 3 buttons hat um damit 3 verschiedene musik-genren abzuspielen. wenn man einen button drückt, soll es zufällig aus der gewählten genre ein musikstück abspielen. leider denke ich etwas kompliziert und habe versucht das so zu lösen.
also button1 soll nur von der genre "black" abspielen,
button2 die genre "jazz" und
button 3 die genre "rock".
dafür habe ich einen raw-ordner erstellt wo sich 9 verschiedene musikdatein befinden. jede genre beinhaltet 3 musikstücke (daher 9 insgesamt). die habe ich auch folgendermaßen benannt:
black_a, black_b und black_c
jazz_a, jazz_b, jazz_c
rock_a, rock_b, rock_c
(alle befinden sich im raw-ordner)
dann habe ich für jede Genre einen String-array erstellt:
public class MainActivity extends Activity {
MediaPlayer mp;
Random r = new Random();
String [] playlist_Black = {"R.raw.black_a", "R.raw.black_b", "R.raw.black_c"};
String [] playlist_Jazz = {"R.raw.jazz_a" , "R.raw.jazz_b" , "R.raw.jazz_c"};
String [] playlist_Rock = {"R.raw.rock_a", "R.raw.rock_b", "R.raw.rock_c"};
.....
Alles anzeigen
Die Onlick-Methode für button1 sieht so aus:
public void PlaylistStadt(View v) {
Uri musicpath = Uri.parse(playlist_Black[r.nextInt(playlist_Black.length)]);
String path = playlist_Black[r.nextInt(playlist_Black.length)];
textView.setText(path);
mp = MediaPlayer.create(getApplicationContext(), musicpath);
mp.start();
}
Fehlermeldung:
03-05 16:46:04.575: E/AndroidRuntime(28734): FATAL EXCEPTION: main
03-05 16:46:04.575: E/AndroidRuntime(28734): java.lang.IllegalStateException: Could not execute method of the activity
03-05 16:46:04.575: E/AndroidRuntime(28734): at android.view.View$1.onClick(View.java:3100)
03-05 16:46:04.575: E/AndroidRuntime(28734): at android.view.View.performClick(View.java:3627)
03-05 16:46:04.575: E/AndroidRuntime(28734): at android.view.View$PerformClick.run(View.java:14329)
03-05 16:46:04.575: E/AndroidRuntime(28734): at android.os.Handler.handleCallback(Handler.java:605)
03-05 16:46:04.575: E/AndroidRuntime(28734): at android.os.Handler.dispatchMessage(Handler.java:92)
03-05 16:46:04.575: E/AndroidRuntime(28734): at android.os.Looper.loop(Looper.java:137)
03-05 16:46:04.575: E/AndroidRuntime(28734): at android.app.ActivityThread.main(ActivityThread.java:4511)
03-05 16:46:04.575: E/AndroidRuntime(28734): at java.lang.reflect.Method.invokeNative(Native Method)
03-05 16:46:04.575: E/AndroidRuntime(28734): at java.lang.reflect.Method.invoke(Method.java:511)
03-05 16:46:04.575: E/AndroidRuntime(28734): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
03-05 16:46:04.575: E/AndroidRuntime(28734): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
03-05 16:46:04.575: E/AndroidRuntime(28734): at dalvik.system.NativeStart.main(Native Method)
03-05 16:46:04.575: E/AndroidRuntime(28734): Caused by: java.lang.reflect.InvocationTargetException
03-05 16:46:04.575: E/AndroidRuntime(28734): at java.lang.reflect.Method.invokeNative(Native Method)
03-05 16:46:04.575: E/AndroidRuntime(28734): at java.lang.reflect.Method.invoke(Method.java:511)
03-05 16:46:04.575: E/AndroidRuntime(28734): at android.view.View$1.onClick(View.java:3095)
03-05 16:46:04.575: E/AndroidRuntime(28734): ... 11 more
03-05 16:46:04.575: E/AndroidRuntime(28734): Caused by: java.lang.NullPointerException
03-05 16:46:04.575: E/AndroidRuntime(28734): at com.example.myrandommusicplayer.MainActivity.PlaylistBlack(MainActivity.java:65)
03-05 16:46:04.575: E/AndroidRuntime(28734): ... 14 more
Alles anzeigen
keine ahnung ob meine methode richtig bzw. gut ist, mir ist leider keine weiteren eingefallen. von der fehlermeldung werde ich auch nicht schlau. wie könnte man das lösen? hat jmd. eine ratschlag oder eine lösung?