//打开音频保存
KtvPlayerConfig.getInstance().enableSavePcm = true
KaraokePlayerCallback#onPlayEnd
回调,当playFinish
参数的值为true时,会回调人声与伴奏播放地址。人声文件为pcm.
M4aSaver
类中所有错误码的说明:M4aSaver saver = new M4aSaver(saveFile, source, AudioEncodeConfig.getDefaultConfig(), false);
saver.setOnEncodingListener(new M4aSaver.OnEncodingListener() {
@Override
public void onProgressUpdate(int position, int length) {
int progress = (int) (position / (float) length * 100);
showText("作品合成中 " + progress + "%");
}
@Override
public void onComplete(String m4aFile) {
Log.d(TAG, "onComplete m4aFile:" + m4aFile);
mM4aPath = m4aFile;
long end = SystemClock.uptimeMillis();
Log.e(TAG, "onComplete Time:" + (end - start));
showText("合成完成,耗时 " + (end - start) + " ms");
}
@Override
public void onError(int ret) {
Log.e(TAG, "onError ret:" + ret);
showText("合成失败 " + ret);
saver.stopEncode();
}
});
api | 功能描述 |
---|---|
void prepare(boolean loop) | 播放初始化,loop: 是否循环播放 |
void prepare(AudioPlaybackParams) | 播放初始化,可以定制AudioAttributes、streamType、AudioContentType等 |
void seek(int pos) | seek |
void pause() | 暂停 |
void resume() | 恢复播放 |
void play(PcmSource source) | 播放指定类型资源 |
void stop() | 停止播放 |
void release() | 释放播放资源 |
void setAudioPlayListener(AudioPlayListener listener) | 设置播放监听 |
AudioEffectConstant.IReverbID.Reverb2TypeKtv, //客厅
AudioEffectConstant.IReverbID.Reverb2TypeMagnetic, //磁性
AudioEffectConstant.IReverbID.Reverb2TypeDizzy, //3d迷幻
AudioEffectConstant.IReverbID.Reverb2TypeNone, //录音棚
AudioEffectConstant.IReverbID.Reverb2TypeRoom, //琴房
AudioEffectConstant.IReverbID.Reverb2TypePhonograph,//老唱片
AudioEffectConstant.IReverbID.Reverb2TypeEthereal, //空灵
AudioEffectConstant.IReverbID.Reverb2TypeChurch, //教堂
public interface AudioPlaybackListener {
/**
* 播放开始
*/
void onStart();
/**
* 播放进度回调
* @param currentTime 当前播放时间
* @param duration 播放时长
*/
void onProcess(long currentTime, long duration);
/**
* 播放结束
*/
void onStop();
/**
* 播放时发生错误
*/
void onError(String message);
}