程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在android studio中将.wav文件作为字节数组读取?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在Android studio中将.wav文件作为字节数组读取??

开发过程中遇到如何在Android studio中将.wav文件作为字节数组读取?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在Android studio中将.wav文件作为字节数组读取?的解决方法建议,希望对你解决如何在Android studio中将.wav文件作为字节数组读取?有所启发或帮助;

我在 androID studio 中使用 Java 来编写我的应用程序。我有一个音频文件的文件路径(.wav 格式),将 .wav 文件读入字节数组的最佳方法是什么? 我正在使用以下转换方法:@H_301_1@

public voID open_audio_file(Uri filePath){
        try{
            in = new BufferedinputStream(getContext().getContentResolver().openinputStream(filePath));

            int read;
            byte[] buff = new byte[1024];
            while ((read = in.read(buff)) > 0)
            {
                out.write(buff,read);
            }
            out.flush();
        }catch(Exception E){
            throw new RuntimeException(E);
        }
        //Todo : Change the audio file to a float pointer
        audioBytes = out.toByteArray();
        Log.i(LOG_TAG,"The audio file is " + audioBytes.toString());
    }

但是,此方法会产生很多我的函数无法读取的行话值。例如, dog.wav www.beaniebestbuy.com/sounds/dog5.wav 的输出是 [B@d25663f 。数组的开头附有行话值。@H_301_1@

更新 1:我尝试使用 AudioSystem 库,但 AndroID studio 不支持它。@H_301_1@

解决方法

您正确读取文件。由于您只是读取字节,因此文件类型实际上无关紧要。

当您对数组调用 toString 时,它不会为您提供整个数组的表示,它只是为您提供对象引用。见documentation here。

如果要查看完整数组,则需要使用 for 循环。

for(int i = 0; i < audioBytes.length; i++) {
    System.out.print(audioBytes[i] +" ");
}

或者,您可以使用 Arrays.toString()

请注意,这可能是一个非常大的输出,不太可能易于阅读。

大佬总结

以上是大佬教程为你收集整理的如何在android studio中将.wav文件作为字节数组读取?全部内容,希望文章能够帮你解决如何在android studio中将.wav文件作为字节数组读取?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。