package com.example.speechtotext import android.app.Activity import android.content.pm.PackageManager import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.speech.RecognizerIntent import android.support.v4.app.ActivityCompat import android.util.Log import android.widget.Button import java.util.* import android.content.Intent import android.widget.Toast class MainActivity : AppCompatActivity() { // 錄製聲音權限 private val userMicrophoneAgreeCode = 1 // 語音辨識意圖 private lateinit var userSpeechRecognizerIntent: Intent override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 進入 checkPermission() checkPermission() // 麥克風物件準備 userSpeechRecognizerIntent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH) userSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM) userSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say something!!!!") // 開啟麥克風按鈕 findViewById<Button>(R.id.ClickButton).setOnClickListener{ // 開始收音 => 會持續進入 onActivityResult startActivityForResult(userSpeechRecognizerIntent,100) } } private fun checkPermission(){ // 目前使用者麥克風權限 val currentMicrophonePermission = ActivityCompat.checkSelfPermission(this, android.Manifest.permission.RECORD_AUDIO) // 檢查權限 => 要求權限後進入 onRequestPermissionsResult if(currentMicrophonePermission != PackageManager.PERMISSION_GRANTED) ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.RECORD_AUDIO), userMicrophoneAgreeCode) // 回到 onCreate return } override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { when (requestCode) { userMicrophoneAgreeCode -> { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { Log.i("Message", "選擇開啟麥克風權限!!!") // 回到 checkPermission return } else { Log.i("Message", "選擇不開啟麥克風權限!!!") finish() } } } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when(requestCode){ 100 -> { if(resultCode==Activity.RESULT_OK && data!=null){ val textResult = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)[0] Toast.makeText(this,textResult,Toast.LENGTH_LONG).show() } } } } }
Standard input is empty
Main.java:1: error: ';' expected
package com.example.speechtotext
^
Main.java:3: error: ';' expected
import android.app.Activity
^
Main.java:4: error: ';' expected
import android.content.pm.PackageManager
^
Main.java:5: error: ';' expected
import android.support.v7.app.AppCompatActivity
^
Main.java:6: error: ';' expected
import android.os.Bundle
^
Main.java:7: error: ';' expected
import android.speech.RecognizerIntent
^
Main.java:8: error: ';' expected
import android.support.v4.app.ActivityCompat
^
Main.java:9: error: ';' expected
import android.util.Log
^
Main.java:10: error: ';' expected
import android.widget.Button
^
Main.java:11: error: ';' expected
import java.util.*
^
Main.java:12: error: ';' expected
import android.content.Intent
^
Main.java:13: error: ';' expected
import android.widget.Toast
^
Main.java:16: error: '{' expected
class MainActivity : AppCompatActivity() {
^
Main.java:19: error: ';' expected
private val userMicrophoneAgreeCode = 1
^
Main.java:22: error: ';' expected
private lateinit var userSpeechRecognizerIntent: Intent
^
Main.java:22: error: <identifier> expected
private lateinit var userSpeechRecognizerIntent: Intent
^
Main.java:24: error: ';' expected
override fun onCreate(savedInstanceState: Bundle?) {
^
Main.java:24: error: <identifier> expected
override fun onCreate(savedInstanceState: Bundle?) {
^
Main.java:24: error: ';' expected
override fun onCreate(savedInstanceState: Bundle?) {
^
Main.java:24: error: illegal start of type
override fun onCreate(savedInstanceState: Bundle?) {
^
Main.java:24: error: <identifier> expected
override fun onCreate(savedInstanceState: Bundle?) {
^
Main.java:24: error: ';' expected
override fun onCreate(savedInstanceState: Bundle?) {
^
Main.java:25: error: illegal start of type
super.onCreate(savedInstanceState)
^
Main.java:25: error: <identifier> expected
super.onCreate(savedInstanceState)
^
Main.java:25: error: ';' expected
super.onCreate(savedInstanceState)
^
Main.java:25: error: illegal start of type
super.onCreate(savedInstanceState)
^
Main.java:25: error: ';' expected
super.onCreate(savedInstanceState)
^
Main.java:26: error: invalid method declaration; return type required
setContentView(R.layout.activity_main)
^
Main.java:26: error: <identifier> expected
setContentView(R.layout.activity_main)
^
Main.java:26: error: ';' expected
setContentView(R.layout.activity_main)
^
Main.java:38: error: illegal start of type
findViewById<Button>(R.id.ClickButton).setOnClickListener{
^
Main.java:38: error: '(' expected
findViewById<Button>(R.id.ClickButton).setOnClickListener{
^
Main.java:38: error: illegal start of type
findViewById<Button>(R.id.ClickButton).setOnClickListener{
^
Main.java:38: error: ';' expected
findViewById<Button>(R.id.ClickButton).setOnClickListener{
^
Main.java:38: error: <identifier> expected
findViewById<Button>(R.id.ClickButton).setOnClickListener{
^
Main.java:38: error: illegal start of type
findViewById<Button>(R.id.ClickButton).setOnClickListener{
^
Main.java:38: error: ';' expected
findViewById<Button>(R.id.ClickButton).setOnClickListener{
^
Main.java:40: error: ';' expected
startActivityForResult(userSpeechRecognizerIntent,100)
^
Main.java:44: error: class, interface, or enum expected
private fun checkPermission(){
^
39 errors
Standard output is empty