編輯:關於Android編程
最近需要使用到語音播報的功能,在百度七武器百度語音和科大訊飛的語音當中考慮到准確性和專業性,選擇了科大訊飛。科大訊飛所提供的android開發sdk有兩種一種是集成了自身產品語音+的sdk,功能比較強大但是會初始化語音服務模塊;另一種是純開發sdk不集成產品只需要導入相應jar包就可以使用。考慮到只用到了語音合成的技術所以選擇了第二種sdk。
ps:要不是他sdk的官方文檔寫的太差了,也不會寫這篇東西。
1,首先需要的jar包,一個是Msc.jar和libmsc.so文件(需要放到armeabi文件夾當中)。在官網中可以下載。
2,在AndroidManifest文件當中填寫需要的權限。
3,在混淆打包的時候需要添加-keep class com.iflytek.**{*;},
4,在代碼當中的使用:
package com.tts.demo;
import com.iflytek.cloud.ErrorCode;
import com.iflytek.cloud.InitListener;
import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechError;
import com.iflytek.cloud.SpeechSynthesizer;
import com.iflytek.cloud.SpeechUtility;
import com.iflytek.cloud.SynthesizerListener;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener{
private SpeechSynthesizer mySynthesizer;
private Button tts_Button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tts_Button = (Button) findViewById(R.id.tts_button);
tts_Button.setOnClickListener(this);
/*
在使用語音平台上傳應用包的時候會自定生成一個appid 應該使用與包相對應的appid在申請提交後沒有使用次數的限制
*/
//語音初始化,在使用應用使用時需要初始化一次就好,如果沒有這句會出現10111初始化失敗
SpeechUtility.createUtility(MainActivity.this, "appid=51e8ae25");
//處理語音合成關鍵類
mySynthesizer = SpeechSynthesizer.createSynthesizer(this, myInitListener);
}
private InitListener myInitListener = new InitListener() {
@Override
public void onInit(int code) {
Log.d("mySynthesiezer:", "InitListener init() code = " + code);
}
};
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.tts_button:
//設置發音人
mySynthesizer.setParameter(SpeechConstant.VOICE_NAME,"xiaoyan");
//設置音調
mySynthesizer.setParameter(SpeechConstant.PITCH,"50");
//設置音量
mySynthesizer.setParameter(SpeechConstant.VOLUME,"50");
int code = mySynthesizer.startSpeaking("歡迎使用語音導航!", mTtsListener);
Log.d("mySynthesiezer start code:", code+"");
break;
default:
break;
}
}
private SynthesizerListener mTtsListener = new SynthesizerListener() {
@Override
public void onSpeakBegin() {
}
@Override
public void onSpeakPaused() {
}
@Override
public void onSpeakResumed() {
}
@Override
public void onBufferProgress(int percent, int beginPos, int endPos,
String info) {
}
@Override
public void onSpeakProgress(int percent, int beginPos, int endPos) {
}
@Override
public void onCompleted(SpeechError error) {
if(error!=null)
{
Log.d("mySynthesiezer complete code:", error.getErrorCode()+"");
}
else
{
Log.d("mySynthesiezer complete code:", "0");
}
}
};
}
Android開發:app工程集成mob短信驗證碼功能
一.前言現在的app基本上都需要用到短信功能,注冊時或者有消息通知時需要給用戶發送一條短信,但是對於個人開發者來說,去買第三方的短信服務實在是有點奢侈,很好的是mob為我
Android控件之ProgressBar用法實例分析
本文實例講述了Android控件之ProgressBar用法。分享給大家供大家參考。具體如下:ProgressBar位於android.widget包下,其繼承於View
android 自定義開關(SwitchButton)
最近心血來潮,寫了一個自定義仿iPhone的開關。有需要的同學可以來下載啦。支持點擊自動滾動,速率可以自己根據需要修改。觸摸滾動,大小自定義,支持修改樣式。就不錄制動畫,
Android Studio導入GitHub上的項目常見問題(以圖片輪播開源項目為實例)
前言:github對開發者而言無疑是個寶藏,但想利用它可不是件簡單的事,用Android studio導入開源項目會遇到各種問題,今天我就以github上的一個圖片輪播項