Хотите воспроизвести аудиофайл по пути data / data / package_name / files - PullRequest
0 голосов
/ 24 января 2012

В моем приложении я храню аудиофайлы в папке data/data/package_name/files/Folder/. Теперь я хочу воспроизвести эти аудиофайлы, используя объект MediaPlayer. Я попробовал 2 способа для этого, но не смог сделать это возможным.

using player.setDataSource(path) //and by using
 MediaPlayer.create(getApplicationContext(),Uri.fromFile(path)).

Есть ли способ, чтобы я мог воспроизвести аудио. Попытка выше, я получаю это

01-24 11:35:13.968: ERROR/AndroidRuntime(1064): FATAL EXCEPTION: main
01-24 11:35:13.968: ERROR/AndroidRuntime(1064): java.lang.NullPointerException
runtime exception.

Пожалуйста, помогите мне. Я также попробовал

try {
                Log.d("1","1");
                File mFile = new File("/data/data/com.lister.viewer/files/com.aaa.0001/audio.wav");
                Log.d("2","2");
                FileInputStream fileInputStream = new FileInputStream(mFile);
                Log.d("3","3");
                player.setDataSource(fileInputStream.getFD());         
                Log.d("4","4");
                player.prepare();
                Log.d("5","5");

            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                Log.d("6","6");
                e.printStackTrace();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                Log.d("7","7");
                e.printStackTrace();
            } 

            catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                Log.d("8","8");
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                Log.d("9","9");
                e.printStackTrace();
            }
            Log.d("10","10");
            player.start();
            Log.d("11","11");

этот код и лог

01-24 12:33:31.468: DEBUG/1(11457): 1
01-24 12:33:31.488: DEBUG/2(11457): 2
01-24 12:33:31.488: DEBUG/3(11457): 3
01-24 12:33:31.518: DEBUG/AndroidRuntime(11457): Shutting down VM
01-24 12:33:31.527: WARN/dalvikvm(11457): threadid=1: thread exiting with uncaught 
exception (group=0x4001d800)
01-24 12:33:31.558: ERROR/AndroidRuntime(11457): FATAL EXCEPTION: main
01-24 12:33:31.558: ERROR/AndroidRuntime(11457): java.lang.NullPointerException

Еще одна вещь, которую я бы сказал, когда я писал player = new MediaPlayer (); Файл выше mFile = новый файл ("/ data / data / com.lister.viewer / files / com.aaa.0001 / audio.wav"); тогда это не исключение, но все равно я не мог слышать звук, и logcat был таким, как показано ниже.

01-24 12:49:59.467: DEBUG/1(16108): 1
01-24 12:49:59.507: DEBUG/2(16108): 2
01-24 12:49:59.507: DEBUG/3(16108): 3
01-24 12:50:00.358: DEBUG/4(16108): 4
01-24 12:50:00.368: DEBUG/5(16108): 5
01-24 12:50:00.368: DEBUG/10(16108): 10
01-24 12:50:00.379: DEBUG/AudioSink(34): bufferCount (4) is too small and increased to 12
01-24 12:50:00.408: DEBUG/11(16108): 11

почему он дает bufferCount (4) слишком мал и увеличен до 12. где я должен его увеличить? Какие-либо дополнительные настройки, необходимые для него ??

1 Ответ

0 голосов
/ 24 января 2012

Хорошо, вслепую,

private MediaPlayer mPlayer = new MediaPlayer();
File mFile = new File("data/data/package_name/files path");
FileInputStream fileInputStream = new FileInputStream(mFile);
mPlayer.reset();
mPlayer.setDataSource(fileInputStream.getFD());         
mPlayer.prepare();

Также убедитесь, что у вашего аудиофайла есть разрешение на чтение .

Проверьте его, используя DDMS или вadb shell ls -al /data/data/package_name/myfile

...