我正在尝试在这里制作朗读菜单选项。这是我写的代码。但它并没有真正朗读卡片上的文字。该文件说,如果卡上有任何文字设置,它将大声朗读。我的卡上有一些文字:
newcard.setText("text");
我调用的MenuActivity
看起来像这样。
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
public class MenuActivity extends Activity {
public Object json(int menuid)
{
JSONObject obj = new JSONObject();
try {
System.out.println("goes into try of json");
obj.put("text", "Hello World");
obj.put("menuItems", new JSONObject().put("action", "READ_ALOUD"));
System.out.println(obj);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return obj;
}
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
openOptionsMenu();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.second, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection.
switch (item.getItemId()) {
case R.id.read_aloud_menu_item:
System.out.println("goes itno read aloud case");
json(item.getItemId());
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public void onOptionsMenuClosed(Menu menu) {
// Nothing else to do, closing the activity.
finish();
}
}
我真的不确定我能否像这样传递JSON。如果不是这样,我还能怎么做呢?
答案 0 :(得分:0)
我不确定你在哪里读到Glass会自动朗读这个......
您应该像使用Google提供的gdk-compass-sample一样使用TextToSpeech
。
在Activity
public class MenuActivity extends Activity {
private TextToSpeech mSpeech;
...
}
在OnCreate
@Override
public void onCreate() {
super.onCreate();
...
mSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
// Do nothing.
}
});
}
调用speak
活动
onOptionsItemSelected
功能
mSpeech.speak(json(item.getItemId()).text, TextToSpeech.QUEUE_FLUSH, null);
在onDestroy
事件
@Override
public void onDestroy() {
mSpeech.shutdown();
mSpeech = null;
super.onDestroy();
}