问题标签 [audioeffect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
8138 浏览

java - 带有 AudioEffect 的 Android MediaPlayer:出现错误 (-22,0)

好吧,这就是我的要求..

我有一个 WAV 文件,我想打开它,添加一些效果,然后播放。

我正在使用MediaPlayer播放文件,并使用PresetReverb添加一些效果。

这是我的代码

当我运行此代码时,我会登录 logcat(我没有记录。)

05-02 12:02:42.356: E/MediaPlayer(17250): 错误 (-22,0)

但是当我评论这些行时

MediaPlayer 正在成功播放文件。所以我的 WAV 文件没有问题。

有点失望,我尝试了EnvironmentalReverb,而不是 PresetReverb,

我也得到了同样的错误(错误(-22,0))。

因此,要么我遗漏了一些如此明显的东西,要么AudioEffect系列类(在文档或 api 本身中)存在一些问题。任何人都可以解释一下吗?

编辑:我忘了补充,当我调试代码时,错误被记录下来

被执行。在发布上面的代码段之前,我已经删除了异常处理部分。但我很肯定,执行时没有发现异常。

再次编辑:

这个链接我了解到错误 -22 是 PVMFErrLicenseRequiredPreviewAvailable

我用 PVMFErrLicenseRequiredPreviewAvailable 搜索了一下,得到了这个文件。在第 87 页

14.10.5 没有有效许可的 DRM 内容预览

第 14.10.3 节中涵盖的场景的一个变体是没有有效许可证来完整播放一段内容,但可以预览的情况。这种情况可能是最初分发内容的常用方式,以便消费者在决定购买完整许可证之前可以预览它。在这种情况下,Init() 方法将返回代码 PVMFErrLicenseRequiredPreviewAvailable,这表明完整播放需要许可证,但预览可用。为了播放预览,应用程序必须删除当前源,然后将其添加回来,并在本地数据源上设置一个标志以指示预览模式。

现在我播放的 WAV 文件是由我使用 android SDK 本身中的 SpeechToText 工具生成的。我不知道播放此文件的许可证是什么。

0 投票
1 回答
2947 浏览

android - 即使 api >= 9 也不总是支持均衡器?

在启用均衡器功能之前,我检查 api 级别以确保它等于或大于 9。从我从用户那里获得的报告中,似乎无论如何都会抛出一些异常:

代码 eq = new Equalizer(0, mp.getAudioSessionId())可以提出:

并且代码eq.getBandLevelRange()可以引发:

我不知道是否有解决方案,如果没有,我可以捕获这些异常并禁用均衡器,但我需要知道究竟是什么原因造成的,这样我就可以通知我的用户而不会让他们感到沮丧。

谢谢你的帮助

0 投票
1 回答
423 浏览

java - 如何编辑音频缓冲区

我创建了一个音频缓冲区并想在播放此声音之前对其进行编辑。我的问题是当数字大于 1 时我会听到很大的噪音。这意味着当我不编辑缓冲区(数据)时,我只能播放没有噪音的缓冲区。背景信息:数据是一个录音缓冲区,包含以下信息:

我的效果类:

0 投票
1 回答
1076 浏览

ios - 在 2 个 AudioUnit 之间添加一个 AULowPass 过滤器

我已经修改了 Tim Boldstad http://timbolstad.com/2010/03/16/core-audio-getting-started-pt2/提供的代码(愿上帝保佑他),并添加了一个小滑块以便能够更改输出音调频率从 40Hz 到 200000Hz。我现在希望能够在生成的音调上使用 LPF。

首先,any1 是否有详细的指南来解释如何执行此操作。我试过简单地在两者之间添加一个节点,但它不起作用,显然,我需要将 16 位整数样本转换为浮动 8.24 格式,然后将音频样本输入提供给过滤器,然后我必须转换它回到 16 位整数。这是问题吗?还是我错误地连接了节点?我应该在哪里设置滤波器截止频率和其他参数?

谁能解释一下 AudioUnitGetProperty 的作用?有关这些主题的 Apple 文档非常零散且毫无价值:(

0 投票
2 回答
4816 浏览

c++ - error: cannot allocate an object of abstract type 'mySynth' VST Programming

For a project, I am being asked to create a VST using the Steinberg SDK, i'm using version 2.4.

The issue that I'm having is error:

cannot allocate an object of abstract type 'mySynth'.

When attempting to compile, the error brings me to this section of code:

I'm a beginner to both c++ and VST programming, I've had no issues compiling the sample AGain and ADelay, as well as the vstxSynth. This is the first attempt of my own, and its really confusing me, from looking at the sample code i cannot seem to find any reason as to why this shouldn't work.

any help would be greatly appreciated. As this is a major learning curve for me, i would appreciate if you could apply with a simplest explanations as possible.

Thankyou :)

0 投票
1 回答
5532 浏览

android - wav文件上的Android音频效果并保存

要求

Android 在 sd 卡中打开一个 .wav 文件,播放它,添加一些效果(如回声,音高转换等),保存文件。简单的 :(

我知道的

  1. 我可以使用 Soundpool 或 MediaPlayer 打开和播放文件。
  2. 我可以在使用两者的同时发挥一些效果。即对于媒体播放器,我可以设置环境混响效果。使用 SoundPool 我可以设置播放速率,这有点像音高转换。我现在成功地实施了这些。
  3. 但是这些类中的任何一个都没有任何方法来保存播放的文件。所以我只能播放,我不能保存有效果的音乐。

我想知道的

  1. 除了 MediaPlayer 或 SoundPool 之外,是否还有其他感兴趣的类别。不用管保存,你只是提到类,我会和他们一起研究保存文件。
  2. 任何可以添加效果和保存的第三方库?如果它是开源和免费的,那就太高兴了。但是,即使它是专有的,也要提及它们。
  3. 我可以研究的任何其他领域。OpenAL 是否支持语音过滤和语音定位?它可以与Android一起使用吗?

准备做肮脏的工作。请把路借给我..

编辑:

进行了更多搜索,然后遇到了AudioTrack。但它也不支持保存到文件。所以那里也没有运气..

编辑

好的,如果我自己做呢?从wav文件中获取原始字节,然后进行处理。我使用 AudioRecord 录制了一个 wav 文件,得到了一个 wav 文件。是否有任何资源描述低级音频处理(我的意思是字节级别)。

编辑

好吧,赏金时间到了,我正在为我得到的唯一答案提供赏金。7天后,我明白的是

  1. 我们无法保存使用 MediaPlayer、AudioTrack 等播放的内容。
  2. 没有可供使用的音频处理库。
  3. 您可以获取原始 wav 文件,并自己进行音频处理。答案为读取/写入 wav 文件提供了一个很好的包装类。一个很好的 java 代码来读取和改变 wav 文件的音调在这里
0 投票
1 回答
773 浏览

android - 支持的音频效果

我正在尝试确定正在运行的设备支持哪些 OpenSL ES 效果。

Andorid SDK 的 AudioEffect 类提供了这样做的方法。

public static Descriptor[] queryEffects ()

我的问题是,鉴于该方法返回的所有AudioEffect.Descriptor,我不知道如何确定其中一个是否真的是我需要的。

公共 UUID 类型

在 API 级别 9 中添加 表示效果的通用类型(均衡器、低音增强...)。UUID 对应于此类效果的 OpenSL ES 接口 ID。

type属性似乎是我应该使用的属性,但我找不到指定所有效果类型 UUID 的 OpenSL ES 参考。

你知道我在哪里可以找到吗?

我可以找到在设备上测试方法结果的 UUID,但是,

我可以假设 UUID 在每个设备上对于特定类型的效果总是相同的吗?

提前致谢

0 投票
0 回答
404 浏览

android - Android SoundPool + AudioEffects

I am currently using the SoundPool for gapless looping over short sample clips - works good so far.

Now I would like to add effects to one or both channels (BassBoost or PresetReverb).

Can I do this with the SoundPool?
Do I have to use Audiotrack instead? (MediaPlayer would be too heavy). Can the Audiotrack loop gapless?

Thanks, paper.

0 投票
1 回答
1148 浏览

android - Android 的 PresetReverb 不起作用?

我正在开发一个支持 Android 内置音频效果(如 EnvironmentalReverb)的小型音频播放器。到目前为止,我在启动它而不崩溃时遇到了问题,我通过向 AndroidManifest.xml 添加缺少的权限解决了这个问题。现在的问题是我只是没有听到任何混响。

这是我的代码:

你知道问题可能是什么吗?

0 投票
0 回答
366 浏览

android - Android:播放下一首歌曲时失去均衡器控制

我已经使用单例均衡器成功地将音频效果应用到 MediaPlayer,但是当播放其他歌曲时,音频效果不再应用,尽管我仍然可以使用该单例均衡器来 setBandLevel()、usePreset() 和 hasControl() 方法仍然返回 true。

这是我如何使用均衡器和 MediaPlayer

你能告诉我为什么我失去了均衡器控制,尽管我已经为新的 MediaPlayer 实例设置了相同的音频会话 ID?谢谢你。