【问题标题】:Android Audio issue安卓音频问题
【发布时间】:2025-11-23 06:30:01
【问题描述】:

我正在尝试在 android 中播放音频文件。 这是我的代码:

    MediaPlayer mp = new MediaPlayer();
    mp.reset();
    mp.create(this, R.raw.beep);
    mp.start();

但我不断收到以下错误: android.content.res.Resources$NotFoundException:文件 res/raw/sound.ogg 来自可绘制资源 ID #0x7f030002

我在 res/raw/ 中有一个 beep.ogg 文件。我还尝试了 mp3 和 wav 文件。还是一样的错误。

什么问题?

【问题讨论】:

  • 如果我的回答对您有帮助,请将其标记为最佳答案。

标签: android


【解决方案1】:

MediaPlayer.create() 是一个静态工厂方法。

尝试:

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

完成此实例后不要忘记致电mp.release()

【讨论】:

  • @Kunal:如果这个答案对你有帮助,请接受它作为正确的答案。
【解决方案2】:

您描述的错误与项目构建期间的资产打包过程有关。资源可能使用 ZIP 压缩。如果您使用 NetBeans 作为您的 IDE,则问题出在您的应用程序项目中的 nbproject/build-impl.xml 文件中。你可以换行:

<zip destfile="${dist.apk}_" update="true">

<zip destfile="${dist.apk}_" update="true" keepcompression="true">

在脚本的&lt;target name="-package-dex"&gt; 部分,当然要重建项目。

【讨论】:

    【解决方案3】:

    创建资源后调用reset()方法。 试试这个,它可能有效

    MediaPlayer mp = new MediaPlayer();    
    mp.create(this, R.raw.beep);
    mp.reset();
    mp.start();
    

    【讨论】: