Giter Site home page Giter Site logo

audiodemo's Introduction

AudioDemo

本 demo app 演示了如何在 Android 平台上开发音频相关应用,具体演示的功能包括:

  1. 如何利用 AudioRecord API 完成 PCM 音频信号的采集
  2. 如何利用 AudioTrack API 完成 PCM 音频信号的播放
  3. 如何读/写标准的 wav 格式的音频文件
  4. 如何使用 OpenSL ES API 接口完成音频的采集与播放
  5. 如何使用 MediaCodec 完成音频的编码和解码

相关博客文章

Android音频开发(1):基础知识

Android音频开发(2):如何采集一帧音频

Android音频开发(3):如何播放一帧音频

Android音频开发(4):如何存储和解析wav文件

Android音频开发(5):音频数据的编解码

Android音频开发(6):使用 OpenSL ES API(上)

Android音频开发(7):使用 OpenSL ES API(下)

感谢

谢谢你的关注,欢迎提供建议和意见,联系方式:[email protected]

audiodemo's People

Contributors

jhuster avatar tonyho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

audiodemo's Issues

WavFileWrite中的一处错误

public boolean openFile(String filepath, int sampleRateInHz, int channels, int bitsPerSample) throws IOException {
if (mDataOutputStream != null) {
closeFile();
}
mFilepath = filepath;
mDataSize = 0;
mDataOutputStream = new DataOutputStream(new FileOutputStream(filepath));
return writeHeader(sampleRateInHz, bitsPerSample, channels);
}

private boolean writeHeader(int sampleRateInHz, int channels, int bitsPerSample) {
}

这里调用writeHeader函数输入参数有问题

关于获取data标签位置不正确的问题

现在有个问题,我找了一些wav格式的歌曲文件来测试,发现data的位置不是固定的,但是一定在BitsPerSample标签后面,SubChunk2Size标签之前。所以大师,你的代码要修复一下,要不有些wav格式的歌曲,获取到的SubChunk2Size信息是错误的。

发现2个bug

1、WavFileWriter.java
37行: return writeHeader(sampleRateInHz,bitsPerSample,channels);
应为: return writeHeader(sampleRateInHz,channels,bitsPerSample);

2、WavFileHeader.java
19行: public static final int WAV_CHUNKSIZE_EXCLUDE_DATA = 36;
应为: public static final int WAV_CHUNKSIZE_EXCLUDE_DATA = 32;

录音声音小的问题

博主你好,我发现不管使用AudioRecord、MediaRecorder还是OpenSL es录音声音都很小,请问这个录音的时候需要设置麦克风的输入音量大小调吗,还是说需要其他的库来增益

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.