`
samyou
  • 浏览: 108022 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于android的audiotrack播放声音断断续续的问题

 
阅读更多

int bufsize = AudioTrack.getMinBufferSize(22050, AudioFormat.CHANNEL_CONFIGURATION_MONO,

AudioFormat.ENCODING_PCM_16BIT);

audioplayer = new AudioTrack(AudioManager.STREAM_MUSIC, 22050, AudioFormat.CHANNEL_CONFIGURATION_MONO,

AudioFormat.ENCODING_PCM_16BIT, bufsize, AudioTrack.MODE_STREAM);

主要是因为buffer设置的太小了,将其改为:

AudioFormat.CHANNEL_CONFIGURATION_MONO,

AudioFormat.ENCODING_PCM_16BIT, bufsize*4, AudioTrack.MODE_STREAM);

即可

分享到:
评论
1 楼 rimanyuan 2013-08-23  
是好很多,但是还是断断续续,你看我下我的代码:
public void playWav(){
    int minBufferSize = AudioTrack.getMinBufferSize(8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
    int bufferSize = 512;
    AudioTrack at = new AudioTrack(AudioManager.STREAM_MUSIC, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, minBufferSize, AudioTrack.MODE_STREAM);
    String filepath = Environment.getExternalStorageDirectory().getAbsolutePath();

    int i = 0;
    byte[] s = new byte[bufferSize];
    try {
        FileInputStream fin = new FileInputStream(filepath + "/REFERENCE.wav");
        DataInputStream dis = new DataInputStream(fin);

        at.play();
        while((i = dis.read(s, 0, bufferSize)) > -1){
            at.write(s, 0, i);

        }
        at.stop();
        at.release();
        dis.close();
        fin.close();

    } catch (FileNotFoundException e) {
        // TODO
        e.printStackTrace();
    } catch (IOException e) {
        // TODO
        e.printStackTrace();
    }      
}

相关推荐

    android AudioTrack播放PCM音频文件 rm格式视频.rar

    android基于AudioTrack播放PCM音频文件的源码实例,播放扩展名为rm格式的文件,不使用android 内置的Audio和video来播放PCM音频数据,通过通过解码得到PCM数据源,使用AudioTrack类实现音频文件的播放,本源码就是...

    android使用AudioTrack低延迟播放音频文件

    `AudioTrack`类是Android提供的一种高级音频输出接口,它允许开发者直接控制音频数据的播放,从而实现更低的延迟效果。这篇博客"android使用AudioTrack低延迟播放音频文件"详细介绍了如何利用`AudioTrack`来实现这一...

    Android实现使用AudioTrack实现不同频率正弦音播放

    在Android平台上,音频播放可以通过多种方式实现,其中`AudioTrack`类是系统提供的一个低级API,用于直接向音频硬件写入数据并播放。本文将深入探讨如何利用`AudioTrack`来实现不同频率的正弦波音频播放,并且能够在...

    Android音频系统AudioTrack使用方法详解

    AudioTrack可以播放PCM数据流,而MediaPlayer可以播放多种格式的声音文件,如MP3、AAC、WAV、OGG、MIDI等。事实上,MediaPlayer在播放音频时,在framework层会创建AudioTrack,把解码后的PCM数据流传递给AudioTrack...

    Android audiotrack 播放pcm

    在Android平台上,`AudioTrack`类是用于在设备上播放音频数据的核心组件。当你需要将PCM(脉冲编码调制)格式的音频流播放出来时,`AudioTrack`扮演了关键角色。PCM是一种常见的无损音频编码方式,它直接存储声音...

    Android MediaCodec解码AAC,AudioTrack播放PCM音频

    6. **处理输出**: 输出缓冲区可能包含部分或完整的声音帧,需要正确地处理并准备播放。如果数据不完整,可能需要合并来自多个输出缓冲区的数据。 7. **播放PCM音频**: 使用`AudioTrack`类来播放解码后的PCM数据。`...

    android使用audioRecord和audioTrack实现语音录音播放与即时播放

    在Android平台上,开发音频应用时,我们经常需要处理声音的录制和播放功能。`AudioRecord`和`AudioTrack`是Android SDK提供的一对关键类,分别用于录音和播放音频数据。这两个类允许开发者进行低级别的音频操作,...

    使用audiotrack播放pcm音频数据(android)

    RT,一个使用audiotrack播放PCM音频数据的DEMO,上传的代码工程中有个音频数据文件夹,包含了用于测试的PCM数据文件,详情请看readme.txt;另外代码附详细说明,走过路过的都不要错过了,喜欢就顶下吧

    Android端AudioTrack以及OpenSL ES结合ffmpeg播放mp3文件

    在Android中,我们可以使用ffmpeg库解析mp3文件,将其转换为Android系统能够识别的音频格式,如PCM,然后通过AudioTrack或OpenSL ES进行播放。 4. **NDK**: (Native Development Kit) 是Android的一个补充工具,...

    android AudioRecord AudioTrack实现录音并播放

    android AudioRecord AudioTrack实现录音并播放 并支持参数选择(频率、编码格式、声道) 更多信息可参考http://blog.sina.com.cn/u/1788464665

    用AudioTrack播放wav

    读取wav文件,用static模式播放.注意需要添加权限,<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

    在Andriod中使用AudioRecord录音,使用AudioTrack播放录音的完整Demo

    AudioRecord和AudioTrack是Android SDK提供的两个核心类,分别用于音频录制和播放。本篇文章将详细解析如何利用这两个类在Android中实现一个完整的录音和播放功能的Demo。 首先,我们来了解AudioRecord。Audio...

    android 使用 audiotrack和audiorecord c++代码

    `AudioTrack`是Android系统提供的用于播放音频数据的类,它可以将PCM(脉冲编码调制)数据发送到音频硬件进行播放。创建`AudioTrack`对象时,需要提供音频格式(如采样率、位深度、通道数)、缓冲区大小以及播放模式...

    Audiotrack 播放音频流

    在Android平台上,`AudioTrack`类是用于播放音频数据的核心组件。它允许开发者将音频数据送入设备的音频硬件进行播放,支持多种音频格式。在本文中,我们将深入探讨`AudioTrack`的工作原理、使用方法以及如何处理PCM...

    audiotrack 播放音频

    在Android系统中,`AudioTrack`是用于在设备上播放音频数据的核心类。它允许开发者直接控制音频硬件,实现低延迟、高性能的音频播放。本文将深入探讨`AudioTrack`的工作原理、使用方法以及相关注意事项。 一、`...

    android使用AudioTrack低延迟播放音频文件.rar

    不过,实际应用中可能会遇到各种问题,比如播放不流畅、声音断断续续等。这可能与缓冲区大小设置不当、CPU占用过高或者硬件兼容性有关。因此,你可能需要进行一些调整,比如增大缓冲区大小,优化音频数据读取和写入...

    Android AudioTrack 分析 pdf

    `AudioTrack`是Android多媒体框架中的一个重要组成部分,主要用于音频播放。开发者可以利用它将原始音频数据流直接写入硬件,从而实现高效的音频回放。与传统的媒体播放器相比,`AudioTrack`提供了更精细的控制能力...

    android 播放报警声音

    首先,了解Android的声音播放机制至关重要。Android系统提供了多种方式来播放音频,包括使用`MediaPlayer`类、`AudioTrack`类和`SoundPool`类等。对于播放报警声音,通常选择`MediaPlayer`,因为它易于使用且功能...

    AudioRecord录音 AudioTrack播放

    AudioRecord和AudioTrack是Android SDK提供的两个核心类,分别用于录音和播放音频数据。这两个类是实现Android设备上音频输入输出的基础。 AudioRecord类允许开发者从设备的麦克风获取原始的PCM(脉冲编码调制)...

    Android 使用 AudioRecord 和 AudioTrack 完成音频PCM数据的采集和播放,并读写音频wav文件。

    Android 使用 AudioRecord 和 AudioTrack 完成音频PCM数据的采集和播放,并读写音频wav文件。 封装好的Java代码,可同时录制PCM和WAV文件。自己定义存储位置。 Android提供了AudioRecord和MediaRecord。MediaRecord...

Global site tag (gtag.js) - Google Analytics