我需要从存储卡上的一个位置播放一些音乐,我该怎么做呢?我知道我需要使用MediaPlayer
类,但如果我想要这样做
try {
mpSong.setDataSource(musicposisition);
mpSong.prepare();
mpSong.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
然后我的应用程序崩溃变量称为musicposisition = /sdcard/musictelefon/03 Mare.mp3
时,我记录它,请帮助!!
谁能告诉我怎么才能扭曲代码??
我不知道这是否对某些人有帮助,但这是我的logcat输出https://docs.google.com/document/d/14k1lqxmdCKxsmwfDUD6za5s7W48lAHOjDfbUHzfgh-s/edit?hl=en_US
如果您正在获取一个特定的扩展文件,您也可以编写这样的代码。现在我只从存储卡中获取。mp3文件。
final String MEDIA_PATH = new String("/sdcard/");
private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
public ArrayList<HashMap<String, String>> getPlayList(){
File home = new File(MEDIA_PATH);
if (home.listFiles(new FileExtensionFilter()).length > 0) {
for (File file : home.listFiles(new FileExtensionFilter())) {
HashMap<String, String> song = new HashMap<String, String>();
song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
song.put("songPath", file.getPath());
// Adding each song to SongList
songsList.add(song);
}
}
// return songs list array
return songsList;
}
/**
* Class to filter files which are having .mp3 extension
* */
class FileExtensionFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return (name.endsWith(".mp3") || name.endsWith(".MP3"));
}
}
您的logcat输出告诉您有一个NullPointerException: Caused by: java.lang.NullPointerException08-30 22:25:38.463: ERROR/AndroidRuntime(6107): at simon. programming .music. musicactivity . oncreate (MusicActivity.java:73)
检查第73行中的MusicActivity.java。那上面有什么?
是的,所以我在android-dev irc的帮助下发现了问题,我错过了在on创建方法