Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将AVVideoComposition初始值设定项转换为Nativescript_Javascript_Objective C_Nativescript - Fatal编程技术网

Javascript 将AVVideoComposition初始值设定项转换为Nativescript

Javascript 将AVVideoComposition初始值设定项转换为Nativescript,javascript,objective-c,nativescript,Javascript,Objective C,Nativescript,正在寻找有关将此objective-c类方法移植到JS/nativescript的帮助。。我尝试过的每一个变体都会导致一个类型错误:undefined不是一个函数 我试着用JS将其写成: const videoComp=AVVideoComposition.alloc.initWithAssetApplyingCifilterWithHandlerAsset,请求=>{…}; //或 const videoComp=AVVideoComposition.alloc.initAssetApplyi

正在寻找有关将此objective-c类方法移植到JS/nativescript的帮助。。我尝试过的每一个变体都会导致一个类型错误:undefined不是一个函数

我试着用JS将其写成:

const videoComp=AVVideoComposition.alloc.initWithAssetApplyingCifilterWithHandlerAsset,请求=>{…}; //或 const videoComp=AVVideoComposition.alloc.initAssetApplyingCifilterWithHandlerAsset,请求=>{…}; //或 const videoComp=AVVideoComposition.alloc.initAssetApplyingCifilterWithHandlerApplicationSet,请求=>{…}; //或 const videoComp=新的AVVideoCompositionasset,请求=>{…}; 举几个例子。实际上,我正在尝试将此代码移植到nativescript/JS:

let blurRadius = 6.0
let asset = AVAsset(url: streamURL)
let item = AVPlayerItem(asset: asset)
item.videoComposition= AVVideoComposition(asset: asset) { request in
    let blurred = request.sourceImage.clampedToExtent().applyingGaussianBlur(sigma: blurRadius)
    let output = blurred.clampedToRect(request.sourceImage.extent)
    request.finish(with: output, context: nil)
}

在这篇博文中可以找到:

它在JavaScript/Typescript中应该是这样的

let blurRadius = 6.0;
let asset = AVAsset.assetWithURL(streamURL);
let item = AVPlayerItem.alloc().initWithAsset(asset);
item.videoComposition = AVVideoComposition.videoCompositionWithAssetApplyingCIFiltersWithHandler(asset, request => {
    let blurred = request.sourceImage.imageByClampingToExtent().imageByApplyingGaussianBlurWithSigma(blurRadius);
    let output = blurred.imageByClampingToRect(request.sourceImage.extent);
    request.finishWithImageContext(output, null);
});

注意:代码未经测试,只是给定本机代码的翻译。利用智能感知支持。

这看起来很有效,谢谢!我犯的主要错误似乎是在转换API时遵循了苹果的Swift文档,而不是nativescript支持的Objective-C文档。