相关疑难解决方法(0)

错误域= AVFoundationErrorDomain代码= -11800"操作无法完成.错误域= NSOSStatusErrorDomain代码= -16170"(null)"

我在聊天应用程序中使用AVPlayer但是我在选定的音频文件中遇到了错误但是音频文件在浏览器中正确播放.

错误域= AVFoundationErrorDomain代码= -11800"操作无法完成"UserInfo = {NSUnderlyingError = 0x60800024fde0 {Error Domain = NSOSStatusErrorDomain Code = -16170"(null)"},NSLocalizedFailureReason =发生未知错误(-16170),NSLocalizedDescription =操作无法完成}

我正在实现以下方法.

-(void)setupAVPlayerForURL:(NSURL*)url
 {
    AVAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
    AVPlayerItem *anItem = [AVPlayerItem playerItemWithAsset:asset];
    playerAud = nil;
    playerAud = [AVPlayer playerWithPlayerItem:anItem];
    [self startTimer];
    [playerAud play];
    [anItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(stopAudioPlay) name:AVPlayerItemDidPlayToEndTimeNotification object:nil];
}

And also implement the fallowing observer.

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    //// playerAud is instance of AVPlayer 
    if (object == playerAud.currentItem && …
Run Code Online (Sandbox Code Playgroud)

ios

18
推荐指数
1
解决办法
1万
查看次数

从视频网址中提取缩略图

我必须从视频中提取缩略图(来自网址),我使用此代码:

NSString *stringUrl = video.stringurl;
NSURL *url = [NSURL URLWithString:stringUrl];

AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:url options:nil];
AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc]initWithAsset:asset];
[imageGenerator setRequestedTimeToleranceBefore:kCMTimeZero];
[imageGenerator setRequestedTimeToleranceAfter:kCMTimeZero];

CGImageRef imageRef = [imageGenerator copyCGImageAtTime:playerCurrentTime actualTime:&actualtime error:&error];
UIImage *thumbnail = [UIImage imageWithCGImage:imageRef];

CGImageRelease(imageRef);
Run Code Online (Sandbox Code Playgroud)

但有时我在copyCGImageAtTime时出错,并且没有生成缩略图.错误是:Error save image Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed"(OSStatus error -12792.)", NSLocalizedFailureReason=An unknown error occurred (-12792)}

这是我已经阅读了解决方案的链接,但是如果使用fileURLWithPath:而不是URLWithString:该方法将url的末尾添加到" - file:// localhost /",使url无效.所以我不知道我能做什么.

iphone objective-c ios avplayer

6
推荐指数
2
解决办法
5727
查看次数

生成视频缩略图时出错

这是我生成视频缩略图的代码:

           NSString *getUrl = [[NSUserDefaults standardUserDefaults] valueForKey:@"newpath"];
NSLog(@"getURL=%@",getUrl);
NSLog(@"newpath for url=%@",newPath);
NSURL *url = [NSURL URLWithString:getUrl];
AVURLAsset *asset=[[AVURLAsset alloc] initWithURL:url options:nil];
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform=TRUE;
[asset release];
CMTime thumbTime = CMTimeMakeWithSeconds(0,30);

AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime, CGImageRef im, CMTime actualTime, AVAssetImageGeneratorResult result, NSError *error){
    if (result != AVAssetImageGeneratorSucceeded) {
        NSLog(@"couldn't generate thumbnail, error:%@", error);
    }
    [btnVideo setImage:[UIImage imageWithCGImage:im] forState:UIControlStateNormal];
   // thumbImg=[[UIImage imageWithCGImage:im] retain];
    [generator release];
};

CGSize maxSize = CGSizeMake(320, 180);
generator.maximumSize = maxSize;
[generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue …
Run Code Online (Sandbox Code Playgroud)

iphone xcode objective-c

4
推荐指数
1
解决办法
5707
查看次数

错误域=AVFoundationErrorDomain 代码=-11800“操作无法完成”{错误域=NSOSStatusErrorDomain 代码=-16976“(空)”}

我正在 Swift3 iOS 中开发视频应用程序。基本上我必须将视频资产和音频与淡入淡出效果合并为一个并将其保存到 iPhone 画廊。为此,我使用以下方法:

private func doMerge(arrayVideos:[AVAsset], arrayAudios:[AVAsset], animation:Bool, completion:@escaping Completion) -> Void {

        var insertTime = kCMTimeZero
        var audioInsertTime = kCMTimeZero
        var arrayLayerInstructions:[AVMutableVideoCompositionLayerInstruction] = []
        var outputSize = CGSize.init(width: 0, height: 0)

        // Determine video output size
        for videoAsset in arrayVideos {
            let videoTrack = videoAsset.tracks(withMediaType: AVMediaTypeVideo)[0]

            let assetInfo = orientationFromTransform(transform: videoTrack.preferredTransform)
            var videoSize = videoTrack.naturalSize
            if assetInfo.isPortrait == true {
                videoSize.width = videoTrack.naturalSize.height
                videoSize.height = videoTrack.naturalSize.width
            }
            outputSize = videoSize
        }

        // Init composition
        let mixComposition …
Run Code Online (Sandbox Code Playgroud)

video avfoundation ios swift3

4
推荐指数
1
解决办法
3600
查看次数

标签 统计

ios ×3

iphone ×2

objective-c ×2

avfoundation ×1

avplayer ×1

swift3 ×1

video ×1

xcode ×1