1
모바일 장치에서 사용 가능한 모든 AUDIO (.mp3) 파일을 나열하고 싶습니다.프로그래밍 방식으로 맞춤 알림 벨소리 설정 (모바일의 AUDIO 파일에서 선택)
사용자는 목록에서 임의의 오디오 파일을 선택할 수 있으며이 응용 프로그램의 알림 음으로 설정할 수 있습니다.
많은 자료를 작성했지만 만족할만한 자료는 없습니다.
감사합니다.
모바일 장치에서 사용 가능한 모든 AUDIO (.mp3) 파일을 나열하고 싶습니다.프로그래밍 방식으로 맞춤 알림 벨소리 설정 (모바일의 AUDIO 파일에서 선택)
사용자는 목록에서 임의의 오디오 파일을 선택할 수 있으며이 응용 프로그램의 알림 음으로 설정할 수 있습니다.
많은 자료를 작성했지만 만족할만한 자료는 없습니다.
감사합니다.
먼저 사용 가능한 모든 mp3 파일을 얻을 u는 목록보기로 설정할 수 유 예에 대한 입수해온 데이터를 원하는대로 아래 코드 않습니다를 사용하거나 대화 등 그들을 보여주는 그들의 이름을 retreive
String extPath = getSecondaryStorage();
if (extPath != null)
{ mySongs_onSystem = findSongs(new File(extPath));
}
else
mySongs_onSystem = findSongs(Environment.getExternalStorageDirectory());
public ArrayList<File> findSongs(File root) {
ArrayList<File> al = new ArrayList<>();
File[] files = root.listFiles();
for (File singleFile : files) {
if (singleFile.isDirectory()) {
al.addAll(findSongs(singleFile));
} else {
if (singleFile.getName().endsWith(".mp3") || singleFile.getName().endsWith(".Mp3") || singleFile.getName().endsWith(".wav")) {
al.add(singleFile);
}
}
}
return al;
}
private String getSecondaryStorage() {
String strSDCardPath = System.getenv("SECONDARY_STORAGE");
if ((strSDCardPath == null) || (strSDCardPath.length() == 0)) {
strSDCardPath = System.getenv("EXTERNAL_SDCARD_STORAGE");
}
//If may get a full path that is not the right one, even if we don't have the SD Card there.
//We just need the "/mnt/extSdCard/" i.e and check if it's writable
if (strSDCardPath != null) {
if (strSDCardPath.contains(":")) {
strSDCardPath = strSDCardPath.substring(0, strSDCardPath.indexOf(":"));
}
File externalFilePath = new File(strSDCardPath);
if (externalFilePath.exists() && externalFilePath.canWrite()) {
return strSDCardPath;
}
}
return null;
}
이와 같은 for 루프를 사용하여 모든 mp3 파일의 이름을 검색하십시오.
for (int i = 0; i < mySongs_onSystem.size(); i++) {
//declare a string array in global String[] songNames;
songNames[i] = mySongs_onSystem.get(i).getName().toString().replace(".mp3", "").replace(".Mp3", "").replace(".wav", "");
Log.i("songname", songNames[i]);
}
는 입수해온 MP3 톤의 문자열 배열을 전달하고 트리거됩니다 사용자 정의 인터페이스를 만들 클릭 리스너 및
store the uri of the selected mp3
Uri u = Uri.parse(mySongs_onSystem.get(position).getAbsolutePath());
을 목록에있는 모든 노래의 이름을 표시하고 연결하는 어댑터를 목록에 첨부 알림이 도착한 후 다음과 같은 미디어 플레이어를 사용하여 선택한 mp3 오디오를 재생하십시오.
mMediaPlayer = new MediaPlayer();
mMediaPlayer = MediaPlayer.create(getApplicationContext(),u);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setLooping(true);
mMediaPlayer.start();
감사의 말 Roy의 답변에 감사드립니다.이 코드는 시스템 벨소리 (모바일 장치 def ault 벨소리가 아닙니다 .Mp3 형식 파일). 모든 .mp3 형식 파일 (예 : 영화 노래도)이 필요합니다. –
첫 번째 루프는 Environment.getExternalStorageDirectory()를 통해 다음과 같이됩니다. ArrayList mySongs_onSystem = findSongs (Environment.getExternalStorageDirectory()); –
부적처럼 일했습니다. 내 시간을 구 했잖아. Environment.getExternalStorageDirectory()가 SdCard0, 즉 내부 저장소를 참조하고 있으므로 체크 아웃합니다. 고맙습니다. –