作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我生成一个 PCM 并想要循环播放声音。我遵循文档,但 Eclipse 一直告诉我
08-05 15:46:26.675: E/AudioTrack(27686): setLoop invalid value: loopStart 0, loopEnd 44100, loopCount -1, framecount 11025, user 11025
这是我的代码:
void genTone() {
// fill out the array
for (int i = 1; i < numSamples - 1; i = i + 2) {
sample[i] = Math.sin(2 * Math.PI * i / (sampleRate / -300));
}
// convert to 16 bit pcm sound array
// assumes the sample buffer is normalised.
int idx = 0;
for (double dVal : sample) {
short val = (short) (dVal * 32767);
generatedSnd[idx++] = (byte) (val & 0x00ff);
generatedSnd[idx++] = (byte) ((val & 0xff00) >>> 8);
}
//write it to audio Track.
audioTrack.write(generatedSnd, 0, numSamples);
audioTrack.setLoopPoints(0, numSamples, -1);
//from 0.0 ~ 1.0
audioTrack.setStereoVolume((float)0.5, (float)1); //change amplitude
}
public void buttonPlay(View v) {
audioTrack.reloadStaticData();
audioTrack.play();
}
请帮忙~~
最佳答案
来自 the documentation : "endInFrames
以 frames 表示的循环结束标记"
日志打印表明您的轨道包含 11025 帧,小于您尝试指定为结束标记的 44100(对于 16 位立体声 PCM 音频,帧大小为 4 字节)。
另外值得注意的是“轨道必须停止或暂停才能改变位置”。
关于android AudioTrack setloop无效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18059957/
m_MediaPlayer = MediaPlayer.create(context, soundFromResource); m_MediaPlayer.setVolume(0.99f, 0.99f
我正在使用 set Looping(true) 选项循环播放视频,我将在特定事件发生后停止媒体播放器。它工作正常。但我想知道我的视频在循环中播放了多少次。 最佳答案 MediaPlayer 不提供该信
我是一名优秀的程序员,十分优秀!