
我正在尝试使用tts和MediaPlayer对某些文本实现暂停和播放功能.但是,我似乎无法使用synthesizetofile函数创建.wav文件.
我已经为xml文件添加了所需的权限:
<uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE" />这是我目前使用的文件创建方法:
private String envPath = Environment.getExternalStorageDirectory() .getabsolutePath() + "/Download";private Uri fileUri;public voID fileCreate() { String inputText = output.getText().toString(); HashMap<String, String> myHashRender = new HashMap<String, String>(); myHashRender.put(TextToSpeech.Engine.KEY_ParaM_UTteraNCE_ID, inputText); Log.d(TAG, "successfully created hashmap"); String destfilename = envPath + "/" + "tts_file.wav"; int sr = tts.synthesizetofile(inputText, myHashRender, destfilename); Log.d(TAG, "synthesize returns = " + sr); file fileTTS = new file(destfilename); if (fileTTS.exists()) { Log.d(TAG, "successfully created fileTTS"); } else { Log.d(TAG, "Failed while creating fileTTS"); } fileUri = Uri.fromfile(fileTTS); Log.d(TAG, "successfully created uri link: " + fileUri.getPath());}这就是我创建mediaPlayer的方式:
fileCreate(); mp = MediaPlayer.create(this, fileUri); Log.d(TAG, "successfuly created mediaplayer"); btnRead.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw arg0) { if (mp.isPlaying()) { mp.pause(); Log.d(TAG, "successfully paused"); } else { mp.start(); Log.d(TAG, "successfully started"); } } });有任何想法吗?
解决方法:
方法synthesizetofile是异步的,因此你应该进行检查
file fileTTS = new file(destfilename);if (fileTTS.exists()) { Log.d(TAG, "successfully created fileTTS");}else { Log.d(TAG, "Failed while creating fileTTS");}在onUtteranceCompletedListener或UtteranceProgressListener中
总结以上是内存溢出为你收集整理的java – 未创建Android TextToSpeech.synthesizeToFile()文件全部内容,希望文章能够帮你解决java – 未创建Android TextToSpeech.synthesizeToFile()文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)