当前位置: 首页 > 面试题库 >

每N毫秒播放一次声音

汪翰墨
2023-03-14
问题内容

我正在开发节拍器应用程序。用户可以在运行时选择bpm,我的应用程序将相应地播放“滴答”声。“滴答”是一个节拍器“拍”(mp3)。我尝试使用Handler和MediaPlayer来实现它,但是节拍器一点也不精确。因此,我考虑了更改整个方法:当用户选择新的bpm值时,我通过每N毫秒重复X次滴答声,然后循环遍历此运行时创建的声音来合成新声音。这是有效的替代方法吗?如何在Android中实现?


问题答案:

循环播放合成声音似乎是目前的最佳选择。在Google I / O 2013上有一个关于音频的 精彩
会议,称为高性能音频,我想建议您对系统如何工作以及开发人员在处理音频延迟时遇到什么问题有更深入的了解。在视频的大约17:00处,有一张显示抖动的图表与回调。在一个不存在的理想世界中(哦,真的吗?),对于所有计划的音频回调,抖动将为零。但是事实并非如此,因为存在高达35毫秒甚至更高的抖动,因为图中的数据是使用未指定的ICS装置制作的,当然还有比这更糟的情况。

因此,由于节拍器是一种精密工具,而这些抖动一点也不好,因此应将计划的回放方法放在一边。我什至使用来制作合成音色的节拍器作品AudioTrack

希望对你有帮助^^



 类似资料:
  • 我用基本的图形用户界面创建了一个小画板程序。我使用了画图组件方法。我想每毫秒更新正在绘制的图形。这样,用户可以在释放鼠标点击之前看到他们将要绘制的内容。例如,如果我正在绘制一个矩形,我想在绘制矩形时看到它。如果你不明白我到底在说什么,打开微软油漆,点击矩形工具。画一个矩形。注意它是如何持续更新的,而不是在释放鼠标后。我想一定有办法让它每毫秒更新我的图形。做这件事最好的方法是什么?抱歉,如果这是一个

  • 问题内容: 当我尝试在小程序中同时播放两个声音时,它将不起作用。我正在使用s。甚至可以在小程序中同时播放两个声音吗? 问题答案: 从Java 1.3+开始,请使用Java Sound API 的类。它类似于基于applet的类,但更好。 EG改编自Java声音信息上显示的EG。

  • 问题内容: 我想每0.5秒触发一次功能,并且能够启动,停止和重置计时器。我不太了解Python线程的工作方式,并且在使用python计时器时遇到了困难。 但是,当我执行两次时,我会不断得到帮助。有没有解决的办法?我尝试在每次开始之前申请。 伪代码: 问题答案: 最好的方法是一次启动计时器线程。在计时器线程中,你需要编写以下代码 然后,在启动计时器的代码中,可以停止事件来停止计时器。

  • 我为我的游戏编写了一个定制的声音系统,但如果要求在几毫秒内播放两个声音,则只能播放一个声音片段。 我尝试在这样的新线程上运行播放,但它不起作用。没有例外,它只是不会播放两种声音。 这是声音播放器类

  • 问题内容: 我试图让多个声音文件在AVAudioPlayer实例上播放,但是当一种声音播放时,另一种声音停止。我一次只能播放一种以上的声音。这是我的代码: 有人可以告诉我如何一次播放多个声音文件,以帮助我吗?任何帮助深表感谢。 非常感谢,凯 问题答案: 音频停止的原因是因为您仅设置了一个AVAudioPlayer,所以当您要求类播放另一种声音时,当前您正在用新的AVAudioPlayer实例替换旧

  • 问题内容: 我正在尝试定义一个接口,以在其中绘制外部设备接收到的一些值。这些值以可以通过接口设置的频率接收。当然,绘图的周期应根据用户定义的周期而改变。因此,我开始定义followint图表: 是下面的类,如此处所示: 是以下类别: 我通过以下方式将样本添加到系列中: 我期望的是,一旦将周期固定为200毫秒,图表就会在X标签上报告大约5个时间值: 我希望每个“空间”中有25个样本。 相反,发生的是