【问题标题】:Android: Sound play error. Compression issue?Android:声音播放错误。压缩问题?
【发布时间】:2012-07-07 21:38:41
【问题描述】:

我重写了我的声音类以捕获异常,以便在调用声音时不再使应用程序崩溃。问题仍然是声音文件无法播放。它在模拟器上运行和播放。

在我用我的 HTC VIVID 测试之前没有错误。我觉得我的手机不是问题。

我的声音文件的文件结构是 Resources>raw>soundfiles.ogg

这是我用于声音类的代码。

public class Sound extends Activity
{
   MediaPlayer mp;
   Context context;
public Sound (Context res)
    {
           context=res;
    }

        public void playSound(int ID) 
        {
         try {
                mp = MediaPlayer.create(context, ID);
                mp.start();

                mp.setOnCompletionListener(new OnCompletionListener() {

                    @Override
                    public void onCompletion(MediaPlayer mp) {
                        mp.release();
                        mp = null;

                    }
                });
            } catch (Exception exception) {
            }   
        }   
}

这里是日志:

E/AndroidRuntime(  981): FATAL EXCEPTION: main
E/AndroidRuntime(  981): android.content.res.Resources$NotFoundException: File r
es/raw/soundfile.ogg from drawable resource ID #0x7f040000
E/AndroidRuntime(  981):        at android.content.res.Resources.openRawResource
Fd(Resources.java:1081)
E/AndroidRuntime(  981):        at android.media.MediaPlayer.create(MediaPlayer.
java:762)


E/AndroidRuntime(  981): Caused by: java.io.FileNotFoundException: This file can
 not be opened as a file descriptor; it is probably compressed

如何解决此压缩问题?

这是设置的大致轮廓。我不认为这是问题的一部分。

final Context res;
    Sound fx;




 public GameView(Context context) //reference to activity 
    {
        super(context);
        res=context;
        fx=new Sound(res);


public boolean onTouchEvent(MotionEvent event)
{

            fx.playSound(R.raw.sound);

【问题讨论】:

  • 您将声音文件保存在哪里?什么文件夹?
  • "我的声音文件结构是 Resources>raw>soundfiles.ogg "
  • 你能把你设置上下文和id的那行贴出来吗?可能是你这样做的方法
  • 我的意思是你使用 Sound 类作为实例化对象并在其上调用 playSound 的地方
  • 我在帖子中添加了大致的设置大纲。问题是声音文件在安装在手机上时没有传输和正确读取。模拟器完美运行。

标签: android audio compression media-player logcat


【解决方案1】:

声音文件被转换为允许模拟器读取文件但手机无法正确访问它。用新的声音文件替换所有声音文件后,程序再次按预期运行:)

以下是一些帮助我为以后遇到此问题的人找出问题的方法:

http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/ http://code.google.com/p/android-apktool/issues/detail?id=153 Problem while opening Asset File with the help of Content Provider

虽然其中一些没有解决我的问题,但它们使找到解决方案成为可能。

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多