我在Android系统下/data/下新建了一个目录mp3,通过下载程序下载两个mp3文件:a.mp3,b.mp3到/data/mp3/目录下,
然后在点击按钮的消息响应事件中执行:
Uri playuri=Uri.parse("/data/mp3/a.mp3");
mediaplayer =MediaPlayer.create(context,playuri);
mediaplayer.setLooping(false);
mediaplayer.start();报错,报mediaplayer空指针异常,接下来,我查到/data/mp3/a.mp3的执行权限为-rw-------,然后执行chmod 777 a.mp3,更改权限,然后再执行以上代码,就正常能执行了,mp3也能播放了那么以上证明我下载的mp3 文件在内存中默认是没有读取播放权限的,那么怎样才能使下载的文件直接可以读取播放呢?
ps:manifest.xml的权限设置如下:
 <uses-permission android:name="android.permission.INTERNET"></uses-permission>
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

解决方案 »

  1.   

    Uri playuri=Uri.parse("/data/mp3/a.mp3");在这之前使用system()试下
      

  2.   

    我觉得应该在
     Uri playuri=Uri.parse("/data/mp3/a.mp3");
    mediaplayer =MediaPlayer.create(context,playuri);
    mediaplayer.setLooping(false);
    mediaplayer.start();中加上读取的权限。。
     public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            //Find VIew
            field_name = (EditText) findViewById(R.id.name);
            filed_pass = (EditText) findViewById(R.id.password);
            // Restore preferences
            //MODE_WORLD_READABLE
            //MODE_WORLD_WIRTEABLE

            SharedPreferences settings =   getSharedPreferences(SETTING_INFOS,MODE_WORLD_READABLE);
    String name = settings.getString(NAME, "");
    String password = settings.getString(PASSWORD, "");
    //Set value
    field_name.setText(name);
    filed_pass.setText(password);    }http://wenku.baidu.com/view/fbe82802de80d4d8d15a4fbd.html
      

  3.   

    你直接start当然会报错啦
    在mediaplayer.start();
    前面加上mediaplayer.prepare();
    试试看,