目前,我已经开始使用NativeScript和Typescript进入开发领域,但是现在我遇到了一个困扰我很多的问题。
我正在'nativescript-plugin-seed'的帮助下开发一个插件,该插件利用pod(AudioKit)进行音频转换。我的问题是,我应该将“ AudioKit”模块导入插件以利用其功能,然后在应用程序中使用它们的方式
我在Swift中包含了我在Xcode项目中测试的音频转换代码,以验证其正确操作,还包括了模板,在该模板中应该导入模块以生成将与我的应用程序通信的方法。
快捷代码
import UIKit
import AudioKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let fileManager = FileManager.default
do {
let origin = Bundle.main.url(forResource: "IOS", withExtension: "mp4")
let documentDirectory = try fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor:nil, create:false)
let destination = documentDirectory.appendingPathComponent("test.wav")
var options = AKConverter.Options();
options.format = "wav";
options.sampleRate = 48000;
options.bitDepth = 16;
let converter = AKConverter(inputURL: origin!, outputURL: destination, options: options)
converter.start(completionHandler: { error in
if(error != nil){
print("ERROR")
}else{
print("CORRECT")
}
})
}
catch {
print(error)
}
}
}
插件代码(my-plugin.ios.ts)
import { Common } from './audio-converter.common';
//I suppose the module should be declared here
export class AudioConverter extends Common {
// and used here
}
**已编辑
我已经使用了命令HERE,但是从未创建过键入文件。用与我阅读相同的方式,如果Pod是用Swift编写的,则必须配置Pod文件和build.xcconfig,但是它还是无法正常工作。我将评论正在执行的步骤,只是为了验证我没有做错什么。
添加Podfile
pod 'AudioKit', '~> 4.0'
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_SWIFT3_OBJC_INFERENCE'] = 'On'
config.build_settings['SWIFT_VERSION'] = '4.0'
end
end
end
将标志ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
执行这些命令以在/ src中创建键入文件(-EDITED为了创建键入文件,这些命令必须在/ demo中使用)
TNS_DEBUG_METADATA_PATH="$(pwd)/metadata" tns build ios [--for-device] [--release]
TNS_TYPESCRIPT_DECLARATIONS_PATH="$(pwd)/typings" tns build ios [--for-device] [--release]
在这一点上,我认为必须在键入地毯时获取文件,但我没有得到它们