Android如何实现伴奏录音合成MP3

  介绍

这篇文章主要介绍了Android如何实现伴奏录音合成MP3,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

具体内容如下

基本实现思路如下:

1。利用Android自带的录音类(AudioRecord)实现录音。

,/* *
  *,才能播放伴奏
  ,*/,private  MediaPlayer 运动员;/* *
  *,才能返回按钮
  ,*/,private  ImageView  btnBack;/* *
  *,才能切换歌曲
  ,*/,private  Button  btnSwitchSong;/* *
  *,才能伴唱时长
  ,*/,private  TextView  tv_recod_time;/* *
  *,才能歌词视图
  ,*/,private  LyricView  lv_lyric;/* *
  *,才能开始录制
  ,*/,private  Button  btnPlay;/* *
  *,才能标题
  ,*/,private  TextView  ivTitle;
  ,private  boolean  canPlay =,真的;
  ,private  boolean  isPause =,假;
  ,/* * *
  *,才能背景音乐模式
  ,*/,private  BackgroudMusicMode  mode =, BackgroudMusicMode.Accompany;/* *
  *,才能歌曲id
  ,*/,private  String  songId;/* *
  *,才能歌曲名称
  ,*/,private  String  songName;/* *
  *,才能歌手名字
  ,*/,private  String  singerName;/* *
  *,才能伴奏文件
  ,*/,private  File 文件;/* *
  *,才能是否正在录制
  ,*/,private  boolean  isStart =,假;/* *
  *,才能录音状态
  ,*/,private  boolean  starting =,假;/* *
  *,才能伴奏时间
  ,*/,private  int  bztimetmp =, 0;/* *
  *,才能伴奏时间
  ,*/,private  String  bztime =,““
  ,/* *
  *,才能录制时间
  ,*/,private  int  recordTimeLength=0;/* *
  *,才能更新伴奏时间
  ,*/,private  RecordTask  rt =,空;
  ,/* *
  *,才能录制频率,单位赫兹。这里的值注意了,写的不好,可能实例化AudioRecord对象的时候,会出错。我开始写成11025就不行。这取决于硬件设备
  *,才能设置音频采样率,44100年是目前的标准,但是某些设备仍然支持22050,16000,11025
  ,*/,private  int  sampleRateInHz =, 44100;/* *
  *,才能设置音频的录制的声道CHANNEL_IN_STEREO为双声道,CHANNEL_CONFIGURATION_MONO为单声道
  ,*/,private  int  channelConfig =, AudioFormat.CHANNEL_CONFIGURATION_MONO;
  ,/* *
  *,才能音频数据格式:PCM  16位每个样本。保证设备支持.PCM  8位每个样本。不一定能得到设备支持。
  ,*/,private  int  audioFormat =, AudioFormat.ENCODING_PCM_16BIT;
  ,/* *
  *,才能调整播放音量
  ,*/,private  AudioManager  audioManager;
  ,/* *
  *,才能最大音量
  ,*/,private  int  maxVolume =, 0;
  ,/* *
  *,才能当前音量
  ,*/,private  int  currentVolume =, 0;
  ,/* *
  *,才能AudioRecord 写入缓冲区大小
  ,*/,protected  int  m_in_buf_size;/* *
  *,才能录制音频对象
  ,*/,private  AudioRecord  mRecorder;/* *
  *,才能录入的字节数组
  ,*/,private  byte [], m_in_bytes;/* *
  *,才能存放录入字节数组的大小
  ,*/,private  LinkedList< byte[]祝辞,m_in_q;/* *
  *,才能AudioTrack 播放缓冲大小
  ,*/,private  int  m_out_buf_size;/* *
  *,才能播放音频对象
  ,*/,private  AudioTrack  mAudioTrack;/* *
  *,才能播放的字节数组
  ,*/,private  byte [], m_out_bytes;/* *
  *,才能录制音频线程
  ,*/,private  Thread 记录;/* *
  *,才能播放音频线程
  ,*/,private  Thread ;/* *
  *,才能让线程停止的标志
  ,*/,private  boolean  flag =,真的;/* *
  *,才能是否启动回声
  ,*/,private  boolean  room_flag =,真的;
  ,
  ,/* * *上面有个播放歌词的组件
  ,/* * *
  *,才能初始化
  ,*/,private  void  init (), {
  ,,
  audioManager 才能=,(AudioManager) getSystemService (Context.AUDIO_SERVICE);
  时间=maxVolume 才能;audioManager.getStreamMaxVolume (AudioManager.STREAM_VOICE_CALL);
  时间=currentVolume 才能;audioManager.getStreamVolume (AudioManager.STREAM_VOICE_CALL);
  registerHeadsetPlugReceiver才能();
  ycApplication 才能=,(YueChangApplication), getApplication ();
  时间=coverDao 才能;new  CoverDao (getApplicationContext ());
  Bundle 才能;Bundle =, getIntent () .getExtras ();
  时间=songId 才能;bundle.getString (“songId");
  时间=songName 才能;bundle.getString (“songName");
  时间=singerName 才能;bundle.getString (“singerName");
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

Android如何实现伴奏录音合成MP3