La lecture des fichiers de ressources Android à partir du stockage interne provoque MediaPlayer.prepare pour donner IOException

Mon app audio, des fichiers de ressources de l'annuaire interne désigné pour mon appli (/data/data/com...). Il semble qu'à télécharger les fichiers à l'emplacement correct, setDataSource(String path) ne jette pas des exceptions, mais MediaPlayer.prepare() throws IOException.Le même code fonctionne sur la carte SD. Pourquoi est-ce arrivé?

EDIT:

Supposons ceci est le code; c'est plus simple que mon code et il jette la même exception:

package com.app.MediaPlayerTest;

public class MediaTest extends Activity {
    MediaPlayer mp;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        DownloadFiles();
        MusicPlay();
    }

    public void DownloadFiles() {
        //Downloads Files
    }

    public void MusicPlay()
    {
            try {
                mp.setDataSource("/data/data/com.app.pronounce/winds.mp3");
            } catch (IllegalArgumentException e1) {
                e1.printStackTrace();
            } catch (IllegalStateException e1) {
                e1.printStackTrace();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        try {
            mp.prepare();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        mp.setLooping(true);
        mp.start();
    }
}

Comme pour la trace de la pile:

(mutexes: tll=0 tsl=0 tscl=0 ghl=0 hwl=0 hwll=0)
"main" prio=5 tid=1 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x4001f1a8 self=0xce48
| sysTid=338 nice=0 sched=0/0 cgrp=bg_non_interactive handle=-1345006528
| schedstat=( 151460588 425586896 45 )
at android.os.BinderProxy.transact(Native Method)
at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:2547)
at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:76)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:854)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:851)
at dalvik.system.NativeStart.main(Native Method)
"Binder Thread #2" prio=5 tid=8 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x40512b30 self=0x156e90
| sysTid=346 nice=0 sched=0/0 cgrp=default handle=1570912
| schedstat=( 4357682 930487 3 )
at dalvik.system.NativeStart.run(Native Method)
"Binder Thread #1" prio=5 tid=7 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x40512a68 self=0x17f578
| sysTid=345 nice=0 sched=0/0 cgrp=bg_non_interactive handle=604904
| schedstat=( 6939806 13372136 3 )
at dalvik.system.NativeStart.run(Native Method)
"Compiler" daemon prio=5 tid=6 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x4050eba8 self=0x938c8
| sysTid=344 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1099136
| schedstat=( 4770066 33579300 5 )
at dalvik.system.NativeStart.run(Native Method)
"JDWP" daemon prio=5 tid=5 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x4050eaf8 self=0x10c3c0
| sysTid=343 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1098624
| schedstat=( 14899224 33240040 20 )
at dalvik.system.NativeStart.run(Native Method)
"Signal Catcher" daemon prio=5 tid=4 RUNNABLE
| group="system" sCount=0 dsCount=0 obj=0x4050ea38 self=0x93570
| sysTid=342 nice=0 sched=0/0 cgrp=bg_non_interactive handle=588000
| schedstat=( 24278832 4707632 7 )
at dalvik.system.NativeStart.run(Native Method)
"GC" daemon prio=5 tid=3 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x4050e990 self=0x8f720
| sysTid=341 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1099336
| schedstat=( 791698 556969 3 )
at dalvik.system.NativeStart.run(Native Method)
"HeapWorker" daemon prio=5 tid=2 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x4050e8d8 self=0x10c740
| sysTid=340 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1357728
| schedstat=( 211702049 225986921 9 )
at dalvik.system.NativeStart.run(Native Method)

source d'informationauteur AnimatedRNG