android project中的代码
(1)
package com.mj.test;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class TestMediaPlayer extends ListActivity {
// private static final String MEDIA_PATH = new String("/sdcard/");
private static final String MEDIA_PATH = new String("F:\\MP3\\other");
// private static final String MEDIA_PATH = new String("\\\\raw\\");
private List<String> songs = new ArrayList<String>();
// private List songs = new ArrayList();
private MediaPlayer mp = new MediaPlayer();
private int currentPosition = 0;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.songlist);
updateSongList();
}
public void updateSongList() {
Log.d("updateSongList", "MEDIA_PATH--------------=="+MEDIA_PATH);
File home = new File(MEDIA_PATH);
Log.d("updateSongList", "home--------------=="+home);
Mp3Filter mf=new Mp3Filter();
Log.d("updateSongList", "mf--------------=="+mf);
Log.d("updateSongList", "home.listFiles(mf)--------------=="+home.listFiles(mf));
if (home.listFiles(mf)!=null&&home.listFiles(mf).length > 0) {
for (File file : home.listFiles(new Mp3Filter())) {
// if (home.listFiles().length > 0) {
//
// for (File file :home.listFiles()) {
songs.add(file.getName());
}
Log.d("updateSongList", "songs.size()*************************"+songs.size());
ArrayAdapter<String> songList = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, songs);
setListAdapter(songList);
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
currentPosition = position;
playSong(MEDIA_PATH + songs.get(position));
}
private void playSong(String songPath) {
try {
mp.reset();
mp.setDataSource(songPath);
mp.prepare();
mp.start();
// Setup listener so next song starts automatically
mp.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
nextSong();
}
});
} catch (IOException e) {
Log.v(getString(R.string.app_name), e.getMessage());
}
}
private void nextSong() {
if (++currentPosition >= songs.size()) {
// Last song, just reset currentPosition
currentPosition = 0;
} else{
playSong(MEDIA_PATH + songs.get(currentPosition));
}
}
}
(2)
package com.mj.test;
import java.io.File;
import java.io.FilenameFilter;
import android.util.Log;
public class Mp3Filter implements FilenameFilter {
public boolean accept(File dir, String filename) {
Log.d("Mp3Filter", "filename--------------------"+filename);
// System.out.println("filename--------------------"+filename);
return (filename.endsWith(".mp3"));
}
}
java project中的代码
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Test {
private static final String MEDIA_PATH = new String("F:\\MP3\\other");
// private static final String MEDIA_PATH = new String("\\\\raw\\");
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("----------------MEDIA_PATH=="+MEDIA_PATH);
List<String> songs = new ArrayList<String>();
File home = new File(MEDIA_PATH);
if (home.listFiles(new Mp3Filter()).length > 0) {
for (File file : home.listFiles(new Mp3Filter())) {
songs.add(file.getName());
}
}
System.out.println("------------songs.size()=="+songs.size());
}
}
6 个解决方案
#1
MEDIA_PATH=new string( F:),F盘怎么能读到呢
#2
换成读T卡吧
#3
我现在将文件加到sdcard中,总是报Failed to push the item(s).错误
#4
模拟器?是不是Failed to push the item(s).---read only file system?
那就用终端命令 adb push 把文件拖进去,放dev或data目录下都可以,应该有写的权限,你试试
那就用终端命令 adb push 把文件拖进去,放dev或data目录下都可以,应该有写的权限,你试试
#5
为什么不用 Environment.getExternalStorageDirectory () 代替“/sdcard”呢
#6
private static final String MEDIA_PATH = new String("/sdcard/");
很少看到这么定义字符串常量的(⊙o⊙)
很少看到这么定义字符串常量的(⊙o⊙)
#1
MEDIA_PATH=new string( F:),F盘怎么能读到呢
#2
换成读T卡吧
#3
我现在将文件加到sdcard中,总是报Failed to push the item(s).错误
#4
模拟器?是不是Failed to push the item(s).---read only file system?
那就用终端命令 adb push 把文件拖进去,放dev或data目录下都可以,应该有写的权限,你试试
那就用终端命令 adb push 把文件拖进去,放dev或data目录下都可以,应该有写的权限,你试试
#5
为什么不用 Environment.getExternalStorageDirectory () 代替“/sdcard”呢
#6
private static final String MEDIA_PATH = new String("/sdcard/");
很少看到这么定义字符串常量的(⊙o⊙)
很少看到这么定义字符串常量的(⊙o⊙)