2011-10-25 27 views
1

我正在嘗試發出語音提醒,這個提醒需要記住一段文字,並在應用程序將文本轉換爲聲音時對其進行轉換,然後創建提醒代碼並創建另一類擴展了廣播接收器,並且讓代碼在提醒中及時觸發,但是當我使它顯示敬酒時運行,但是當我在接收器中寫入語音的代碼以在時間設置中觸發時,它會讓我「施加力關閉」請你回答我,我中的onReceive寫了這個,但它不工作如何在android中創建語音提醒

public class ReadyToSpeak extends BroadcastReceiver 
{ 

    VoiceAlert voicealert= new VoiceAlert(); 

    @Override 
    public void onReceive(Context context, Intent intent){ 
    // TODO Auto-generated method stub 

    Intent scheduledIntent = new Intent(context,VoiceAlert.class); 
    scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(scheduledIntent); 
    Toast.makeText(context, "onresive", Toast.LENGTH_LONG).show(); 

    // voicealert.speak(); 
    voicealert.txs.speak("Hello", TextToSpeech.QUEUE_FLUSH, null); 


    } 



} 

我做的代碼了一遍,並沒有工作,這就是出現在logcat的

10-27 10:23:06.920:WARN/KeyCharacterMap(127):使用默認鍵盤映射:/system/usr/keychars/qwerty.kcm.bin 10-27 10:23:12.671:WARN/KeyCharacterMap(119 ):無鍵盤0 0 10-27 10:23:12.671:WARN/KeyCharacterMap(119):使用默認鍵盤映射:/system/usr/keychars/qwerty.kcm.bin 10-27 10:23:14.081: DEBUG/dalvikvm(127):GC_EXPLICIT在77ms中釋放了2068個對象/ 132776個字節 10-27 10:23:33.990:INFO/ActivityManager(58):開始活動:Intent {act = android.intent.action.MAIN cat = [ android.intent.category.LAUNCHER] flg = 0x10200000 cmp = org.anddev.android.speechreminder/.ReminderActivity} 10-27 10:23:34.470:INFO/ActivityManager(58):Starting activity:Intent {act = android。 speech.tts.engine.CHECK_TTS_DATA cmp = com.svox.pico/.CheckVoiceData} 10-27 10:23:34.710:INFO/ActivityManager(58):顯示的活動org.anddev.android.speechreminder/.ReminderActivity:577 ms(總計577 ms) 10-27 10:23:34.720:WARN/KeyCharacterMap (313):沒有用於標識的鍵盤0 10-27 10:23:34.720:WARN/KeyCharacterMap(313):使用默認鍵盤映射:/system/usr/keychars/qwerty.kcm.bin 10-27 10:23: 34.780:VERBOSE/TtsService(319):TtsService.onCreate() 10-27 10:23:34.830:VERBOSE/TtsService(319):將加載/system/lib/libttspico.so,applyFilter = true 10-27 10:23:34.910:VERBOSE/TtsService(319):TtsService.setLanguage(eng,USA) 10-27 10:23:35.120:INFO/ActivityManager(58):進程com.android.alarmclock(pid 170)has死了。 10-27 10:23:35.141:INFO/SVOX Pico引擎(319):成功加載en-US 10-27 10:23:35.141:INFO/SynthProxy(319):將語速設置爲100 10-27 10:23:44.870:DEBUG/dalvikvm(296):GC_EXPLICIT在159ms中釋放了1918個對象/ 108296個字節 10-27 10:23:49.990:WARN/KeyCharacterMap(114):沒有用於ID的鍵盤0 10-27 10: 23:50.001:WARN/KeyCharacterMap(114):使用默認鍵盤映射:/system/usr/keychars/qwerty.kcm.bin 10-27 10:24:18.050:WARN/InputManagerService(58):窗口已經聚焦,忽略焦點獲得:[email protected] 10-27 10:24:20.550:DEBUG/SntpClient(58):請求時間失敗:java.net.SocketException:不支持的地址族協議

+0

歡迎使用計算器。如果您發現特定的回覆是對您的問題的滿意答案,請點擊回覆旁邊的複選標記以接受它。 –

+0

您可以請發佈從logcat完整的錯誤? –

+0

你能幫我嗎 – Tota

回答

0

Taghrid,它看起來像你得到一個Stackoverflow錯誤。這表明您的代碼中某處有Infinite recursion。它看起來就是VoiceAlert和ReadyToSpeak函數,它們可以相互呼叫。你確定你使用的包,org.androiddev.android.test質量好嗎?你在使用它的發佈版本嗎?

+0

謝謝你的重播,org.androiddev.android。測試是我爲我的應用程序創建的包,而voicealert是另一個類VoiceAlert的對象,我在其中執行了語音代碼,但在嘗試註冊廣播時,敬酒火卻沒有開始,當我打電話時語音方法 – Tota

+0

我怎麼知道代碼有什麼問題? – Tota

+0

我必須更換包嗎?還是我必須重新做這個應用程序?併爲循環我需要這個循環繼續運行,直到設定的時間點火 – Tota