2015-12-27 2 views
-1

Я новичок в Android и Java. Я могу загрузить «testfile.mp3», используя следующий код, если файл уже находится в моей папке ресурсов:Загрузка внешнего аудиофайла в Android

mSoundId = mSoundPool.load(MainActivity.this, R.raw.testfile, 1); 

Как я могу загрузить аналогичный файл из внешней папки вне приложения документа dicrectory (Say под SDCard/Android/data/com.jorc.audio)

ответ

1

Я бы порекомендовал вам использовать Android MediaPlayer. Есть примеры, такие как игры из App ресурсов:

MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.testfile); 
mediaPlayer.start(); 

Или воспроизведения файла с SD карты:

//Insert the Path here 
Uri myUri = Uri.parse(Environment.getExternalStorageDirectory().getPath())+"/Android/data/com.jorc.aud/test.mp3"); 
MediaPlayer mediaPlayer = new MediaPlayer(); 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mediaPlayer.setDataSource(getApplicationContext(), myUri); 
mediaPlayer.prepare(); 
mediaPlayer.start(); 

Но чтобы получить доступ к SD-карты вам нужно разрешение:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
+0

I пришлось удалить .getPath()), чтобы перейти к следующей строке, где я также получаю эту ошибку. Ошибка: (123, 35) ошибка: незарегистрированное исключение IOException; должен быть пойман или объявлен брошенным – Amir

+0

@Amir, когда вы получите эту ошибку, вы должны поместить ее в блок catch try. – timia2109

+0

Ну, я думаю, это выпадает из моего мастерства. У вас есть пример кода с запросом json post для версии 23? В старых используются Apache.http, которые, похоже, не поддерживаются в новых версиях. – Amir

Смежные вопросы