【问题标题】:OutOfMemoryError Exception while passing audio file from asset folder从资产文件夹传递音频文件时出现 OutOfMemoryError 异常
【发布时间】:2013-10-22 11:52:24
【问题描述】:

代码:

AssetManager am = ctx.getAssets();

        try {

            InputStream is = am.open("kalimba.mp3"); // use recorded file instead of getting file from assets folder.

            int length = is.available();
            Log.v("Length", ""+length);

            audio_data = new byte[length];
            int bytesRead=0;

            ByteArrayOutputStream output = new ByteArrayOutputStream();

            while (bytesRead  != length)

            {
                Log.v("BytesRead", ""+bytesRead);
                Log.v("Audio Data", ""+audio_data);
                output.write(audio_data,bytesRead,length-bytesRead);

            }

          inarry = output.toByteArray();

LogCat:

10-22 07:40:11.516: E/AndroidRuntime(3369): java.lang.OutOfMemoryError
10-22 07:40:11.516: E/AndroidRuntime(3369):     at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91)
10-22 07:40:11.516: E/AndroidRuntime(3369):     at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201) 
10-22 07:40:11.516: E/AndroidRuntime(3369):     at com.deepak.encydep.MainActivity.getAudioFile(MainActivity.java:149) ----> Error Line
10-22 07:40:11.516: E/AndroidRuntime(3369):     at com.deepak.encydep.MainActivity$1.onClick(MainActivity.java:56)
10-22 07:40:11.516: E/AndroidRuntime(3369):     at android.view.View.performClick(View.java:4240)
10-22 07:40:11.516: E/AndroidRuntime(3369):     at android.view.View$PerformClick.run(View.java:17721)

【问题讨论】:

  • 您想将您的 mp3 文件传递​​到哪里?你为什么要把它转换成字节数组..?
  • 我正在加密音频文件并将该文件保存到 sdcard.. 此代码适用于小于 3MB 的文件。如果 m 使用的大小超过了.. 会发生此异常...
  • @Rethinavel:这对我没有帮助..希望你不理解我的问题..

标签: android bytearray out-of-memory


【解决方案1】:

看起来您根本没有更新您的 bytesRead,它始终保持为 0。这样您的 while() 将永远运行(在您的情况下 - 直到 OutOfMemory)
我也没有注意到你从 is(your input stream) 读取任何数据到 buffer(audio_data)

【讨论】:

    猜你喜欢
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多