2012-08-28 11 views
22

Chciałbym sygnał dźwiękowy mojej aplikacji z określoną częstotliwością i czasem trwania. W oknach równowartości tej aplikacji (napisany w C#) użyłem C++ dll z funkcjąJak wygenerować sygnał dźwiękowy w Androidzie?

beep(frequency, duration); 

Czy to samo w android? A przynajmniej jak mogę umieścić moje C++ w projekcie?

Wolałbym nie używać gotowych dźwięków mp3 lub systemowych, ponieważ chciałbym dać użytkownikowi wybór częstotliwości i czasu trwania.

+0

możliwe duplikat: http://stackoverflow.com/questions/6462105/how-do-i-access-androids-default-beep-sound – Max

+0

spojrzeć w tym możliwym duplikacie również: http://stackoverflow.com/q/5279242/1127492 – Stefan

+0

Dziękuję za odpowiedź (obaj z was), ale tak naprawdę to nie jest to, czego szukam. – Cippo

Odpowiedz

1

Jeśli chcesz używać swojego kodu C++ w aplikacji na Androida, co jest możliwe. Musisz przyjrzeć się Androidowi NDK, który pozwala ci na użycie kodu C++ przy pomocy JNI (Java Native Interface).

Android NDK

+0

Ok ... Czy mógłbyś wyjaśnić, co powinienem zrobić? Dzięki! – Cippo

+0

Przede wszystkim musisz zainstalować ndk. na powyższym linku powinien znajdować się przewodnik, który pozwoli Ci skonfigurować (co jest całkiem łatwe). i tutaj jest inny link do próbek ndk to najlepszy sposób na rozpoczęcie .. [link] (http://developer.android.com/tools/sdk/ndk/index.html#Samples) – Dilberted

+0

Dziękuję bardzo. Właściwie nie mogę tego teraz wypróbować, ponieważ programuję na moim tablecie z Androidem bez zaćmienia. Spojrzę na to mimo to. Jeszcze raz bardzo dziękuję! – Cippo

14

Łatwym sposobem jest użycie instancji z ToneGenerator klasy:

// send the tone to the "alarm" stream (classic beeps go there) with 50% volume 
ToneGenerator toneG = new ToneGenerator(AudioManager.STREAM_ALARM, 50); 
if (val >= taux_max) { 
    taux_text.setTextColor(warnning_col); 
    toneG.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 200); // 200 is duration in ms 
} 

Proszę zapoznać się z dokumentacją ToneGenerator i AudioManager o dokładnym rozumieniu parametrów oraz możliwych konfiguracji generatora.

74

Próbowałem odpowiedzi na amine.b. W skrócie, grać głośno brzęczyka:

ToneGenerator toneG = new ToneGenerator(AudioManager.STREAM_ALARM, 100); 
toneG.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 200); 
+0

Podoba mi się ten, to rzeczywiście wyda dźwięk zamiast dzwonka :) –

+2

Najlepiej byłoby użyć ciągłego dźwięku, jak te z ToneGenerator.TONE_DTMF_0 do ToneGenerator.TONE_DTMF_S lub wygenerowany sygnał dźwiękowy może brzmieć przerwane. – ungalcrys

Powiązane problemy