将TTS音频文件保存到Android 10中的共享存储

qybjjes1  于 2022-10-30  发布在  Java
关注(0)|答案(1)|浏览(296)

我想将我的音频文件保存到Android 10中的共享存储中,该文件是使用以下方法创建的:

textToSpeech.synthesizeToFile(text,params,file,"utterance_id");

***文件***是使用createFile()方法创建的ParcelFileDescriptor类型:

public void createFile()
    {
        ContentValues values = new ContentValues(4);
        values.put(MediaStore.Audio.Media.TITLE, "Audioasas");
        values.put(MediaStore.Audio.Media.DATE_ADDED, (int) (System.currentTimeMillis() / 1000));
        values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/mp3");
        values.put(MediaStore.Audio.Media.RELATIVE_PATH, "Music/Recordings/");

        audiouri = getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values);
        try {
            file=getContentResolver().openFileDescriptor(audiouri,"w");
        } catch (FileNotFoundException e) {
            e.printStackTrace();

 }

这里的问题是,下面的方法

public int synthesizeToFile (CharSequence text, 
                Bundle params, 
                ParcelFileDescriptor fileDescriptor, 
                String utteranceId)

在API级别30(Android 11)中添加。
对于android 10,我们有:

public int synthesizeToFile (CharSequence text, 
                Bundle params, 
                File file, 
                String utteranceId)

但是getContentResolver().openFileDescriptor(audiouri,"w")方法总是返回FileDescriptor对象。
因此,我的问题是,如何将我的音频文件保存到使用
第一个

i7uq4tfw

i7uq4tfw1#

使用fdopen()函数
FILE* fp = fdopen(fd, "w");

相关问题