#basic4android
#basic4android
Вопрос:
Есть ли какой-либо способ с помощью Basic4Android заставить его издавать звук произвольной частоты (то есть я не хочу иметь предварительно записанные звуковые файлы) и длительности?
В некоторых «традиционных» базовых языках это можно было бы сделать, например, с помощью команды звукового сигнала, за которой следует желаемая частота и длительность.
Basic4Android, похоже, не поддерживает какую-либо эквивалентную команду.
Я ищу эту функцию, чтобы запрограммировать приложение, генерирующее азбуку Морзе, и для этой цели мне нужно сохранять гибкость в отношении звуковой частоты тона (должен выбираться пользователем), например, между 500 Гц и, скажем, 1000 Гц, а также переменной длительности в миллисекундах (чтобы иметь возможность генерировать переменную пользовательскую частоту).выбираемая скорость тире и точек азбуки Морзе и паузы между ними)…
Это просто непрактично или почти невозможно сделать это с предварительно записанными WAV, иначе вы получите огромную коллекцию WAV для всех комбинаций частоты / скорости.
Кажется, это возможно в Android, смотрите Пример здесь: http://marblemice.blogspot.com/2010/…n-android.html
Насколько я могу интерпретировать этот код, он вычисляет синусоидальный сигнал «на лету» на желаемой частоте в буферный массив и использует эти данные буфера для генерации и воспроизведения в виде потока PCM.
Поскольку приведенный выше код кажется довольно простым, интересно, придумал бы умный Java-программист простую библиотеку Basic4Android «Tone Generator», которую другие могли бы использовать для этой цели?
К сожалению, я всего лишь старомодный пользователь VisualBasic и делаю свои первые шаги с Basic4Android … для создания собственной библиотеки мои навыки просто слишком паршивые.
Ответ №1:
Звуковая библиотека была обновлена, и теперь вы можете использовать объект Beeper для воспроизведения звуков «beep».
Dim b As Beeper
b.Initialize(300, 500) '300 milliseconds, 500hz
b.Beep
Ответ №2:
Это определенно можно сделать на Android, в приложении на основе Java. Я не знаю, может ли Basic4Android делать это «изначально» (я никогда не слышал о Basic4Android до этого), но, похоже, вы можете создавать библиотеки на Java, к которым затем может получить доступ Basic4Android, поэтому теоретически было бы возможно создать библиотеку Java, которая делает это, а затем вызвать ее изваше приложение B4A.
Однако, поскольку это все равно повлечет за собой изучение java и плагина Android для Eclipse, может быть, вам стоит просто сделать решительный шаг и изучить java для Android? Я сам давно работаю с Visual Basic (начал в 1995 году), и на самом деле было не так сложно перейти на C #, а оттуда на java.