audiotrack java,Java AudioTrack.release方法代码示例

import android.media.AudioTrack; //导入方法依赖的package包/类

@Override

public void onCompleted() {

// create a new AudioTrack to workaround audio routing issues.

AudioTrack audioTrack = new AudioTrack.Builder()

.setAudioFormat(mAudioOutputFormat)

.setBufferSizeInBytes(mAudioOutputBufferSize)

.setTransferMode(AudioTrack.MODE_STREAM)

.build();

if (mAudioOutputDevice != null) {

audioTrack.setPreferredDevice(mAudioOutputDevice);

}

audioTrack.setVolume(AudioTrack.getMaxVolume() * mVolume / 100.0f);

audioTrack.play();

mConversationHandler.post(new Runnable() {

@Override

public void run() {

mConversationCallback.onResponseStarted();

}

});

for (ByteBuffer audioData : mAssistantResponses) {

final ByteBuffer buf = audioData;

mConversationHandler.post(new Runnable() {

@Override

public void run() {

mConversationCallback.onAudioSample(buf);

}

});

audioTrack.write(buf, buf.remaining(),

AudioTrack.WRITE_BLOCKING);

}

mAssistantResponses.clear();

audioTrack.stop();

audioTrack.release();

mConversationHandler.post(new Runnable() {

@Override

public void run() {

mConversationCallback.onResponseFinished();

}

});

if (mMicrophoneMode == MicrophoneMode.DIALOG_FOLLOW_ON) {

// Automatically start a new request

startConversation();

} else {

// The conversation is done

mConversationHandler.post(new Runnable() {

@Override

public void run() {

mConversationCallback.onConversationFinished();

}

});

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值