这个问题让我沮丧了好一阵子。我试图使用Tarsos DSP在一个我正在为Android工作的项目上执行一些基本的信号处理。音频来自一个标准的WAV文件,是44.1K,16bit立体声。当我设置并运行Tarsos AudioDispatcher使用一个使用Android的AudioTrack输出声音的音频处理器时,我得到的是播放速度过快的静态或音频。
下面是设置音频分派器的代码
public void Play(String source, double startTime, final double endTime){
InputStream wavStream;
try {
wavStream = new FileInputStream(source);
UniversalAudioInputStream audioStream = new UniversalAudioInputStream(wavStream, audioFormat);
dispatcher = new AudioDispatcher(audioStream, bufferSize, overLap);
AndroidAudioPlayer player = new AndroidAudioPlayer(audioFormat, buffersize);
dispatcher.addAudioProcessor(player);
dispatcher.skip(startTime);
new Thread(new Runnable() {
@Override
public void run() {
while (dispatcher.secondsProcessed() < endTime) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
dispatcher.stop();
}
}).start();
dispatcher.run();
try {
audioStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}catch (FileNotFoundException e){e.printStackTrace();}
}
public class AndroidAudioPlayer implements AudioProcessor {
private AudioTrack audioTrack;
AndroidAudioPlayer(TarsosDSPAudioFormat audioFormat, int bufferSize){
audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
(int)audioFormat.getSampleRate(),
AudioFormat.CHANNEL_OUT_STEREO,
AudioFormat.ENCODING_PCM_16BIT,
bufferSize,
AudioTrack.MODE_STREAM);
}
@Override
public boolean process(AudioEvent audioEvent){
short[] shorts = new short[audioEvent.getBufferSize() / 2];
ByteBuffer.wrap(audioEvent.getByteBuffer()).order(ByteOrder.LITTLE_ENDIAN).asShortBuffer().get(shorts);
audioTrack.write(shorts, 0, shorts.length);
audioTrack.play();
return true;
}
@Override
public void processingFinished(){}
}
我编写了另一个音频处理器,它使用AudioDispatcher从使用JavaZoom的WAV文件中编写剪辑,这也会产生静态或不正确的音频。但是,当我使用InputStream和JavaZoom从WAV文件中编写一个剪辑时,它有时工作得很好,或者生成静态的,我假设这是因为依赖tarsos的方法错误地设置了startTime和stopTime变量。任何见解都将不胜感激。
在调用上述方法之前,我首先调用一个方法,该方法使用示波器和ComplexOnsetDetector音频处理器在同一个WAV文件上使用AudioDispatcher来生成波形视图,并用开始的时间码填充数组。audioFormat变量是这样创建的:TarsosDSPAudioFormat audioFormat=new TarsosDSPAudioFormat(sampleRate,16,2,false,false);
,从WAV文件中读取采样率,我已经检查了它是否正确读取。*缓冲区大小是1024,重叠是512,我试过使用所有这些值。
**我已经解决了这个问题。我正在加载一个由JavaZoom MP3转换器创建的WAV文件,该文件不断地覆盖一个文件,而不首先删除它。我认为Tarsos是使用文件长度来确定播放长度,这是不正确的,因为覆盖与删除。删除文件首先解决了问题。
我只需要弄清楚为什么音频在回放时跳过,有时只是静态播放,然后我想我可以走了。
使用单声道(1声道)输入。TarsosDSP音频处理器目前不支持立体声。
我正在为我的YouTube频道创建一个网站,因为我为YouTube等制作音乐。 我想知道如何才能为我的网站添加一个mp3播放器,而不是在每次重新加载页面时停止播放。 我想让mp3播放器不断播放,不管它上多少页。 有人能告诉我怎么做吗?谢谢:)
我不小心删除了一个视频文件,但设法用恢复工具保存了它。视频被破坏了,但我设法修复了它,现在有了一个。h264文件。 我对FFMPEG是完全陌生的,运气不太好。任何建议都会很好。 提前致谢
问题内容: 我正在尝试提高将包含敏感数据的MySQL数据库的安全性。我正在努力掌握一些术语。可以让我知道我是否正确理解了这种情况: 静态加密 -似乎我可以在表级别启用它。使用密钥对表中的所有数据进行加密。如果有人持有备份文件或对服务器具有物理访问权限,则数据将受到保护。当然,这假定密钥存储在其他位置。 AES_ENCRYPT- 在向表中插入/更新数据时,可以使用。通过SELECT查询数据时,我使用
问题内容: 我发现了如何使用jquery暂停和播放视频 但是我找不到静音按钮,如果没有jquery解决方案,我只需要一个onclick js解决方案就可以了。我需要尽快。 还有解决静音延迟的方法吗?我希望它在单击按钮后立即将声音静音/取消静音。 问题答案: $(“video”).prop(‘muted’, true); //mute 和 (旁注:在jQuery <1.6中使用if)
太空放置是一款空间主题的放置游戏,单击游戏右上角的 i 获取信息。
我已经创建了一个非常简单和基本的html5音频播放器,实际上不超过: 但我面临两个问题,这个简单的音频标签在Chrome上可以使用,但在Safari 7上不行;第二个问题是,它不能在我的iPhone iOS7和HTC Android 2.3上使用