2015-04-08 4 views
7

Чтобы получить единственный короткий звуковой сигнал на громкоговорителе, я хочу напрямую отправить один бит в громкоговоритель. Аналогично светодиоду мигает. Есть ли возможность делать короткий звуковой сигнал без каких-либо медиаплеер?Как воспроизвести короткий звуковой сигнал на громкоговорителе телефона Android

+0

Возможный дубликат [Как играть рингтон/звуковой сигнал в Android] (http://stackoverflow.com/questions/2618182/how-to-play-ringtone-alarm-sound-in-android) – aga

+0

дубликат http : //stackoverflow.com/questions/12154940/how-to-make-a-beep-in-android – Ferdau

+0

Да, лучший способ - использовать NDK. Благодаря! – andreikashin

ответ

36

Я рекомендую вам использовать класс ToneGenerator. Он не требует аудиофайлов, нет медиаплеера, и вы можете настроить громкость звукового сигнала, продолжительность (в миллисекундах) и тип тона. Мне нравится этот один:

ToneGenerator toneGen1 = new ToneGenerator(AudioManager.STREAM_MUSIC, 100);    
toneGen1.startTone(ToneGenerator.TONE_CDMA_PIP,150); 

Вы можете увидеть в объект ToneGenerator (. CMD + щелчок над ToneGenerator, в Mac), и выбрать другой тип звукового сигнала, кроме TONE_CDMA_PIP, 150 является длительность в миллисекундах, и 100 объем ,

+0

Как мы можем получить двойной звуковой сигнал? – Mauker

+0

@Mauker Прослушать второй звуковой сигнал M миллисекунд после первого звукового сигнала, где M - длина в миллисекундах этого первого звукового сигнала, плюс около 100 мс между звуковыми сигналами, чтобы вы могли четко рассказать об этом. Вот код о том, как реализовать задержку кода с помощью Handlers: https://stackoverflow.com/questions/15874117/how-to-set-delay-in-android – Josh

Смежные вопросы