【问题标题】:Android media player status=0x1 error, want to play soundAndroid 媒体播放器状态=0x1 错误,想要播放声音
【发布时间】:2017-02-23 08:16:38
【问题描述】:

我正在尝试使用代码加载/播放声音(I have file /res/raw/fx2.wav)

MediaPlayer mp = MediaPlayer.create(this, R.raw.fx2);

MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.fx2);

我得到这个错误:

java.io.IOException: Prepare failed.: status=0x1

我搜索了这个错误,但没有一个答案有工作代码。 这样的例子还有:

MediaPlayer mediaPlayer = new MediaPlayer();

然后是: FileInputStream or mp.setDataSrouce

我正在尝试这些,但到目前为止我没有任何工作,我不知道哪种方法最适合我或在什么情况下应该使用它们?我只是想加载和播放声音。

可能是我没有正确理解上下文。或者我的声音文件有问题(但这是一种正常的小方法,所以我认为不是这个)。

有什么想法吗?

【问题讨论】:

    标签: android audio


    【解决方案1】:

    您应该具有从外部存储器读取文件的权限,位于您的 AndroidManifest.xml 文件中。

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

    您还应该尝试使用以下代码更改文件的路径(将 com.example.myapp 更改为您的包名称):

    MediaPlayer mp = new MediaPlayer();
    Uri uri = Uri.parse("android.resource://com.example.myapp/" + R.raw.fx2);
    mp.setDataSourceUri(this, uri);
    

    详情请见this answer

    【讨论】:

      【解决方案2】:

      这对我有用:

      MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.beep);
      mediaPlayer.start();
      

      确保您正在导入:

      import android.media.MediaPlayer;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多