播放字符串数据。 (将字符串值作为音频播放)

时间:2017-02-28 11:43:58

标签: android android-mediaplayer avaudioplayer

像我们想要在Android应用程序中播放音频文件一样,我们使用媒体播放器并从原始文件夹中获取音频文件,我们只是播放它。我想做的就像我想从字符串数据播放音频。例如: 字符串值=“你好先生”;

我想把这个字符串“你好先生”作为音频播放。

1 个答案:

答案 0 :(得分:0)

您可以使用TextToSpeech

public class MainActivity extends AppCompatActivity {

    private TextToSpeech mTextToSpeech;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTextToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                if (status != TextToSpeech.ERROR) {
                    mTextToSpeech.setLanguage(Locale.UK);
                    speak("Hello sir");
                }
            }
        });
    }

    private void speak(String text) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            textToSpeechGreater21(text);
        } else {
            textToSpeechUnder20(text);
        }
    }

    @SuppressWarnings("deprecation")
    private void textToSpeechUnder20(String text) {
        HashMap<String, String> map = new HashMap<>();
        map.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "MessageId");
        mTextToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, map);
    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    private void textToSpeechGreater21(String text) {
        String utteranceId = this.hashCode() + "";
        mTextToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null, utteranceId);
    }
}