Kotlin的新朋友。正在尝试将音频录制保存到存储器。我目前一直在尝试使用mediarecord.setoutputfile(文件名)。但是,它是错误的,因为这个错误:
java.io.filenotfoundexception:/storage/emulated/0/recording1.mp3:打开失败:eperm(不允许操作)
现在我想创建一个 File
在调用setoutputfile来解决此问题之前。但由于某些原因,androidstudio一直在下面强调“期待一个顶级声明”。
File fileval = File.createNewFile("blah.mp3"); //This is the line
完整代码:
package com.example.testapp.data
import android.content.Intent;
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;
import android.media.MediaRecorder;
import android.os.Environment
import android.os.PersistableBundle
import com.example.testapp.R
import android.Manifest
import android.content.Context
import android.content.pm.PackageManager
import android.media.MediaPlayer
import android.os.Build
import android.os.Environment.getDataDirectory
import android.util.Log
import androidx.annotation.RequiresApi
import androidx.appcompat.widget.AppCompatButton
import java.io.File
import java.io.IOException
private const val LOG_TAG = "AudioRecordTest"
private const val REQUEST_RECORD_AUDIO_PERMISSION = 200
File fileval = File.createNewFile("blah.mp3"); //This is the line
public class RecordActivity : AppCompatActivity() {
private var mr: MediaRecorder? = null
private var recordbtn: Button? = null
private var filename: String? = null
private var state: Boolean = false
private var recordingStopped: Boolean = false
private var player: MediaPlayer? = null
private var playbtn: Button? = null
// Requesting permission to RECORD_AUDIO
private var permissionToRecordAccepted = false
private var permissions: Array<String> = arrayOf(Manifest.permission.RECORD_AUDIO)
@RequiresApi(Build.VERSION_CODES.M)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_record)
requestPermissions(permissions, REQUEST_RECORD_AUDIO_PERMISSION)
recordbtn = RecordButton(this)
playbtn = PlayButton(this)
filename = Environment.getExternalStorageDirectory().getAbsolutePath()
filename += "/Recording1.mp3"
mr = MediaRecorder()
mr?.setAudioSource(MediaRecorder.AudioSource.MIC)
mr?.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
mr?.setOutputFile(filename)
mr?.setAudioEncoder(3) //AAC; need to review what the best choice here is.
mr?.prepare()
}
//more code...
}
2条答案
按热度按时间vngu2lb81#
您使用的是java语法,而不是kotlin语法。是的
blpfk2vs2#
在appcompatactivity()中使用以下代码