【问题标题】:Any way to create an arbitrary tone with Basic4android?有什么方法可以用 Basic4android 创建任意音调?
【发布时间】:2015-10-16 22:13:13
【问题描述】:

Basic4Android 有什么方法可以让它发出任意频率的声音(意思是,我不想有预先录制的声音文件)和持续时间?

在某些“传统”基本语言中,这将通过例如BEEP 命令后跟所需的频率和持续时间。

Basic4Android 似乎不支持任何等效命令。

我正在寻找这个功能来编写一个摩尔斯电码生成应用程序,为此我需要在音频音调(必须是用户可选择的)之间保持灵活性,例如500Hz,让我们说 1000Hz 以及可变的持续时间(以毫秒为单位)(为了能够生成可变的用户可选择的莫尔斯电码破折号和点的速度以及中间的无声中断)...

使用预先录制的 WAV 执行此操作根本不切实际或几乎不可能,否则您最终会收集到所有频率/速度组合的庞大 WAV 集合。

在 Android 中似乎可以这样做,请参见此处的示例: http://marblemice.blogspot.com/2010/...n-android.html

据我所知,它会以所需频率“即时”计算正弦波音调到缓冲区数组中,并使用该缓冲区数据生成并作为 PCM 流播放。

由于上面的代码看起来很简单,我想知道一个聪明的 Java 编程人员是否会想出一个简单的 Basic4Android“音调发生器”库,其他人可以使用它来实现这个目的?

不幸的是,我只是一个老式的 VisualBasic 人,并且正在使用 Basic4Android 迈出第一步……对于创建自己的库,我的技能实在是太糟糕了。

【问题讨论】:

    标签: basic4android


    【解决方案1】:

    音频库已更新,您现在可以使用蜂鸣器对象播放“哔”声。

    Dim b As Beeper
    b.Initialize(300, 500) '300 milliseconds, 500hz
    b.Beep
    

    Updated library link

    【讨论】:

      【解决方案2】:

      这绝对可以在 Android 上,在基于 java 的应用程序中完成。我不知道 Basic4Android 是否可以“本机”执行此操作(在此之前我从未听说过 Basic4Android),但您似乎可以在 java 中创建库,然后 Basic4Android 可以访问这些库,因此理论上可以创建一个执行此操作的 java 库,然后从您的 B4A 应用程序中调用它。

      但是,既然这需要学习一些 java 和 Eclipse 的 Android 插件,也许你应该冒险学习 Android 的 java?我自己是一个长期使用 Visual Basic 的人(从 1995 年开始),从 C# 过渡到 java 并没有那么难。

      【讨论】:

        猜你喜欢
        • 2011-09-06
        • 1970-01-01
        • 2010-10-27
        • 2020-02-09
        • 2013-08-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多