2011-09-30 45 views
1

有没有什么办法可以让Basic4Android发出任意频率的声音(意思是我不想有预先录制的声音文件)和持续时间?任何使用Basic4android创建任意音色的方法?

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

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

我正在寻找这个功能,以编程摩尔斯电码生成应用程序,为此,我需要保持灵活性,以确保电话号码之间的音频音频(必须是用户可选择的)。 500Hz,并且可以说1000Hz以及以毫秒为单位的可变持续时间(为了能够产生可变的用户可选速度的莫尔斯电码短划线和点之间的无声中断)...

这根本不实用或接近无法用预先录制的WAV来做到这一点,否则你将最终成为一个巨大的WAV集合,用于所有频率/速度组合。

这似乎是有可能在Android中这样做,看到这里的例子: http://marblemice.blogspot.com/2010/...n-android.html

至于我可以解释这个代码,它计算的正弦波音“对飞”在希望的频率成缓冲区数组并使用该缓冲区数据生成并作为PCM流播放。

由于上面的代码似乎很简单,我不知道一个聪明的Java编程人员会想出一个简单的Basic4Android“音频发生器”库,其他人可以用于此目的?

不幸的是,我只是一个老式的VisualBasic家伙,并使我的第一步与Basic4Android ...创建我自己的图书馆我的技能太简直太糟糕了。

回答

0

这在基于java的应用程序中完全可以在Android上执行。我不知道Basic4Android是否能够“本地化”(在此之前,我从未听说过Basic4Android),但似乎可以用java创建库,然后可以通过Basic4Android访问,所以理论上可以创建一个这样做的java库,然后从你的B4A应用程序调用它。

然而,由于这将需要学习一些java和Eclipse的Android插件,也许你应该只是冒险和学习Android的Java?我自己是一个长期的Visual Basic人员(从1995年开始),并且转换到C#以及由此转向java并不是那么困难。

1

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

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

Updated library link

相关问题