2015-04-08 12 views
7

Per ricevere l'unico segnale acustico breve sull'altoparlante, desidero inviare un singolo bit direttamente all'altoparlante. Allo stesso modo, il LED lampeggia. C'è qualche possibilità di fare un breve segnale acustico senza alcun tipo di lettore multimediale?Come riprodurre un breve segnale acustico sull'altoparlante del telefono Android a livello di programmazione

+0

possibile duplicato di [Come riprodurre suoneria/suono di allarme in Android] (http://stackoverflow.com/questions/2618182/how-to-play-ringtone-alarm-sound-in-android) – aga

+0

duplicato di http : //stackoverflow.com/questions/12154940/how-to-make-a-beep-in-android – Ferdau

+0

Sì, il modo migliore è utilizzare NDK. Grazie! – andreikashin

risposta

36

Si consiglia di utilizzare la classe ToneGenerator. Non richiede file audio, nessun lettore multimediale e puoi personalizzare il volume del beep, la durata (in millisecondi) e il tipo di tono. Mi piace questo uno:

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

Si può vedere nell'oggetto generatore di suono (. CMD + clic su generatore di suono, in Mac), e scegliere un altro tipo di segnale acustico oltre TONE_CDMA_PIP, 150 è la durata in millisecondi, e 100 il volume .

+0

Come si ottiene un doppio segnale acustico con esso? – Mauker

+0

@Mauker Riproduci un secondo segnale acustico M millisecondi dopo il primo segnale acustico, dove M è la lunghezza in millisecondi di quel primo segnale acustico, più alcuni 100ms tra i segnali acustici in modo da poterli distinguere chiaramente. Ecco il codice su come implementare un ritardo del codice con i gestori: https://stackoverflow.com/questions/15874117/how-to-set-delay-in-android – Josh

Problemi correlati