您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Android怎么實(shí)現(xiàn)自動(dòng)朗讀功能”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Android怎么實(shí)現(xiàn)自動(dòng)朗讀功能”吧!
前言: Android提供了自動(dòng)朗讀支持??梢詫?duì)指定文本內(nèi)容進(jìn)行朗讀,從而發(fā)生聲音;還允許把文本對(duì)應(yīng)的音頻錄制成音頻文件,方便以后播放。Android的自動(dòng)朗讀主要通過(guò)TextToSpeech來(lái)完成,構(gòu)造器如:TextToSpeech(Context context, TextToSpeech.OnInitListennet listener);當(dāng)創(chuàng)建TextToSpeech對(duì)象時(shí),必須先提供一個(gè)OnInitListener監(jiān)聽(tīng)器——負(fù)責(zé)監(jiān)聽(tīng)TextToSpeech的初始化結(jié)果。
效果圖如下:
使用TextToSpeech的步驟如下:
1、創(chuàng)建TextToSpeech對(duì)象,創(chuàng)建時(shí)傳入OnInitListener監(jiān)聽(tīng)器監(jiān)聽(tīng)示范創(chuàng)建成功。
2、設(shè)置TextToSpeech所使用語(yǔ)言國(guó)家選項(xiàng),通過(guò)返回值判斷TTS是否支持該語(yǔ)言、國(guó)家選項(xiàng)。
3、調(diào)用speak()或synthesizeToFile方法。
4、關(guān)閉TTS,回收資源。
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/input_text" android:layout_marginTop="20dp" android:layout_width="match_parent" android:layout_height="wrap_content"/> <LinearLayout android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/speech" android:text="Speech" android:layout_width="wrap_content" android:layout_weight="1" android:layout_height="wrap_content"/> <Button android:id="@+id/record" android:text="Record" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> </LinearLayout>
Activity文件
public class SpeechActivity extends AppCompatActivity { private EditText input; private Button speech,record; private TextToSpeech textToSpeech; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_speech); textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { if (status == textToSpeech.SUCCESS) { int result = textToSpeech.setLanguage(Locale.CHINA); if (result != TextToSpeech.LANG_COUNTRY_AVAILABLE && result != TextToSpeech.LANG_AVAILABLE){ Toast.makeText(SpeechActivity.this, "TTS暫時(shí)不支持這種語(yǔ)音的朗讀!", Toast.LENGTH_SHORT).show(); } } } }); input = (EditText) findViewById(R.id.input_text); speech = (Button) findViewById(R.id.speech); record = (Button) findViewById(R.id.record); speech.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { textToSpeech.speak(input.getText().toString(), TextToSpeech.QUEUE_ADD, null); } }); record.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String inputText = input.getText().toString(); HashMap<String, String> myHashRender = new HashMap<>(); myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, inputText); textToSpeech.synthesizeToFile(inputText, myHashRender, "/mnt/sdcard/my_recorder_audios/sound.wav"); Toast.makeText(SpeechActivity.this, "聲音記錄成功。", Toast.LENGTH_SHORT).show(); } }); } @Override protected void onDestroy() { if (textToSpeech != null) textToSpeech.shutdown(); super.onDestroy(); } }
這里我們使用的是中文,int result = textToSpeech.setLanguage(Locale.CHINA);你也可以根據(jù)自己的需求更改為其他支持的語(yǔ)言。
最后在AndroidManifest.xml中加入權(quán)限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
總結(jié):通過(guò)使用Android提供的TTS,我們可以對(duì)指定文本內(nèi)容進(jìn)行朗讀,從而發(fā)生聲音;還允許把文本對(duì)應(yīng)的音頻錄制成音頻文件,保存到本地。
到此,相信大家對(duì)“Android怎么實(shí)現(xiàn)自動(dòng)朗讀功能”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。