小编Cri*_*682的帖子

AVAssetExportSession错误-11820

我正在编写一个使用AVFoundation处理视频的应用程序.

我的应用程序的行为很简单:我从相机胶卷拍摄视频,然后创建一个带有一些音轨的AVMutableComposition.使用混合合成我初始化AVAssetExportSession,将视频文件存储在我的应用程序的文档目录中.

在此之前,一切都没问题:我的视频已存储,我可以在另一个控制器中播放.如果我将刚刚存储在我的文档文件夹中的视频进行一些编辑(与第一次AVmutableComposition,AVAssetExportSession相同)再次没问题.

但是我第三次执行此过程来编辑视频,AVAssetExportSession状态变为"Fail"并出现此错误:

"Domain=AVFoundationErrorDomain Code=-11820 "Cannot Complete Export" UserInfo=0x1a9260 {NSLocalizedRecoverySuggestion=Try exporting again., NSLocalizedDescription=Cannot Complete Export}"

我读过这是一个无法导出会话的一般错误.这是什么意思?为什么我第三次进行编辑过程?这可能是内存管理错误吗?一个bug?这是我的AVAssetExportSession的代码:

 _assetExport = [[AVAssetExportSession alloc] initWithAsset:mixComposition presetName:AVAssetExportPresetHighestQuality];   
_assetExport.shouldOptimizeForNetworkUse = YES;

///data odierna
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"ddMMyyyyHHmmss"];

NSDate *now = [[NSDate alloc] init];

NSString *dateString = [format stringFromDate:now];
[now release];
[format release];
NSString* ext = @".MOV";
NSString* videoName=[NSString stringWithFormat:@"%@%@", dateString, ext];

///data odierna
NSString *exportPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:videoName];

if ([[NSFileManager defaultManager] fileExistsAtPath:exportPath]) 
{
    [[NSFileManager defaultManager] removeItemAtPath:exportPath error:nil];
} …
Run Code Online (Sandbox Code Playgroud)

iphone avfoundation ios

11
推荐指数
1
解决办法
4646
查看次数

App和InApp购买第二次拒绝

应用历史记录:我正在尝试发送已存在的应用更新.此版本是第一个实施In App Purchase代码的版本.我测试了app和inapp,所有工作都在沙盒环境中.Naturraly我无法测试官方环境,直到inapp被批准,但我确定我使用验证收件人的PHP脚本工作,因为我仍然使用它已经在商店中的其他应用程序.

首先提交:我已经发送同时审查inapp和应用程序,似乎一切正常,但我的应用程序被拒绝,因为无法购买inapp.同时我的inapp被拒绝了,在iTunes中我发现了这个: 在此输入图像描述

在inapp的细节: 在此输入图像描述

单击语言详细信息:在此输入图像描述

此时我搜索了我的itunes应用程序设置,我找到了一个关于语言的设置,在"应用程序信息"部分中,默认语言被设置为inapp的不同语言.我已经更改了此设置,现在app和inapp都使用了相同的语言.我删除了inapp,我创建了另一个同名,标识符ecc.inapp状态更改为等待审核,然后我重新提交应用程序的相同包.

第二次提交:我的应用程序和我的应用程序再次被拒绝.错误,拒绝的原因是相同的,我在inapp部分有相同的行为.决议中心的信息如下:


"2.2

我们发现,在运行iOS 6.0.1的iPhone 5上,在Wi-Fi和蜂窝网络上查看时,您的应用会出现一个或多个错误,这不符合App Store审核指南.

具体来说,我们注意到在尝试购买In App AddOn时会显示错误消息.

有关详细信息,请参阅随附的屏幕截图."


我认为此消息是里程碑,我的应用程序显示的错误消息是我在收到SKPaymentTransactionStateFailed或我无法验证收件人时触发的警报.所有这些功能在沙箱中都能正常工作.

我的inapp有什么问题?任何人都有类似的东西吗?

iphone in-app-purchase appstore-approval ios

8
推荐指数
1
解决办法
2000
查看次数

iOS数据存储指南拒绝

我的应用被拒绝,因为它必须遵循iOS数据存储指南.我已经在stackoverflow上阅读了一些答案,我已经阅读了一些博客......我知道我的问题,在第一次应用程序启动时我复制1个sqlite数据库并解压缩文档文件夹中的一些图像.问题是icloud自动填充文件目录中的任何文件.我不需要在我的应用程序中使用icloud,但我的文件必须保留在文档文件夹中,因为它们是我的应用程序的基础数据,必须是persit(缓存文件夹或临时文件夹不是正确的解决方案).所以我读到了一个标志,我可以逐个文件设置以禁止备份:

[URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:nil];

我还读过这个方法只适用于高于5.0.1的ios,在另一个中它将被简单地忽略(我已经将我的ios部署目标设置为4.3)...如果我使用这种方法我的应用程序将再次被拒绝因为较旧的ios设备备份不受管理?如果是,有一个cross-iosversion方法来设置NSURLIsExcludedFromBackupKey?

编辑我很抱歉icloud不存在于ios 5.0之前,所以我认为问题只涉及版本5.0和5.0.1之间的差异,我错了?

iphone appstore-approval ios

5
推荐指数
1
解决办法
4372
查看次数

NSURLIsExcludedFromBackupKey - 应用必须遵循iOS数据存储指南,否则将被拒绝

我的应用程序被拒绝,因为似乎7 MB存储在文档文件夹中,它们会自动发送到icloud.所以我已经通过这种方法循环将写入文档文件夹的所有文件:

- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL {   

   const char* filePath = [[URL path] fileSystemRepresentation];
   const char* attrName = "com.apple.MobileBackup";
   if (&NSURLIsExcludedFromBackupKey == nil) {
   // iOS 5.0.1 and lower
   u_int8_t attrValue = 1;
   int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
   return result == 0;
 }
  else {
   // First try and remove the extended attribute if it is present
   int result = getxattr(filePath, attrName, NULL, sizeof(u_int8_t), 0, 0);
   if (result != -1) {
       // The attribute exists, we need …
Run Code Online (Sandbox Code Playgroud)

iphone appstore-approval ios icloud

5
推荐指数
1
解决办法
3274
查看次数

使用CMTime而不进行舍入?

我正在编写一个使用AVFoundation和CMTime的应用程序.我已经记录了CMTime使用创建的实例的值CMTimeMake().此值似乎四舍五入到最接近的整数.我需要一个CMTime具有精确值的实例,而不需要舍入.

我在CMTime参考文献中看到了舍入常量:

enum {
   kCMTimeRoundingMethod_RoundHalfAwayFromZero = 1,
   kCMTimeRoundingMethod_RoundTowardZero = 2,
   kCMTimeRoundingMethod_RoundAwayFromZero = 3,
   kCMTimeRoundingMethod_QuickTime = 4,
   kCMTimeRoundingMethod_RoundTowardPositiveInfinity = 5,
   kCMTimeRoundingMethod_RoundTowardNegativeInfinity = 6,

   kCMTimeRoundingMethod_Default = kCMTimeRoundingMethod_RoundHalfAwayFromZero
};
Run Code Online (Sandbox Code Playgroud)

没有任何关于如何控制这些策略应用于CMTime实例的示例?或者,如果这不是正确的方法,我如何从CMTime实例中提取精确值?


编辑:

我找到并测试过了CMTIME_HAS_BEEN_ROUNDED().我将我的CMTime实例传递给了这个函数并返回No(表示该值尚未舍入).那为什么我会失去精确度呢?

iphone avfoundation core-media ios avmutablecomposition

0
推荐指数
1
解决办法
2066
查看次数

AVFoundation替代方案

在我的应用我插入了视频轨道的编辑音轨和结果(第一,然后由AVMutableComposition由保存在一个文件中exportAsynchronouslyWithCompletionHandler).我用过AVFoundation.是否有另一个框架可用于达到相同的结果?

iphone video objective-c avfoundation

0
推荐指数
1
解决办法
960
查看次数