Swift - ma c OS - Звуковой файл не создается путем передачи URL-адреса в SpeakCFString - PullRequest
0 голосов
/ 06 мая 2020

Я начинаю с Xcode 11.4.1 и Swift 5.1 для ma c OS Catalina 10.15.4, и я пытаюсь закодировать функцию для создания звукового файла из строки символов, содержащей текст:

import AppKit

func writeSpeech(textToSpeech: String, dirPath: String, fileName: String) -> Bool {

var mUrl:    CFURL? = nil
var mSCh:    SpeechChannel? = nil
var isErr:   OSErr


//  Create channel
isErr = NewSpeechChannel(nil, &mSCh)
if (isErr != noErr) {
    return false
}


//  File URL
mUrl = URL(fileURLWithPath: dirPath + "/" + fileName + ".aiff") as CFURL?
//  mUrl = nil


//  Set URL
SetSpeechProperty(mSCh!, kSpeechOutputToFileURLProperty, mUrl as CFURL?)
if (isErr != noErr) {
    return false
}


//  Save to file
isErr = SpeakCFString(mSCh!, textToSpeech as CFString, nil)
if (isErr != noErr) {
    return false
}

return true }

У меня нет ошибок компиляции, ошибок времени выполнения и функция возвращает true, но, к сожалению, звуковой файл никогда не создается.

Если я использую nil вместо имени файла, текст воспроизводится правильно на динамике. В моем коде определенно что-то не так, но я не могу найти что-то, и у меня недостаточно навыков, чтобы решить эту проблему.

Кто-нибудь знает, что не так и как это сделать?

...