2014-04-09 36 views
0

我正在錄製視頻到我的應用程序中。我的應用程序僅在iOS 7.0.x中崩潰。在將捕獲的視頻寫入文件時,我的應用程序崩潰。下面是我的代碼來設置會話&撥動相機iOS 7.0.x中的AVFoundation框架中的應用程序崩潰僅在

- (BOOL) setupSessionWithPreview:(UIView *)preview usingFrontCamera:(BOOL)frontCamera 
{ 
    AVCaptureDevice *videoDevice = nil; 
    if (frontCamera) { 
     videoDevice = [self getFrontCamera]; 
     self.videoDeviceType = VideoDeviceTypeFrontCamera; 
    } 
    else { 
     videoDevice = [self getRearCamera]; 
     self.videoDeviceType = VideoDeviceTypeRearCamera; 
    } 
    AVCaptureDevice *audioDevice = [self getAudioDevice]; 

    self.videoInput = [[AVCaptureDeviceInput alloc] initWithDevice:videoDevice error:nil]; 
    AVCaptureDeviceInput *audioInput = [[AVCaptureDeviceInput alloc] initWithDevice:audioDevice error:nil]; 

    self.session = [[AVCaptureSession alloc] init]; 
    if([self.session canAddInput:self.videoInput]) 
     [self.session addInput:self.videoInput]; 

    if([self.session canAddInput:audioInput]) 
     [self.session addInput:audioInput]; 

    self.audioOutput = [[AVCaptureAudioDataOutput alloc] init]; 
    dispatch_queue_t audioCaptureQ = dispatch_queue_create("Audio Capture Q", DISPATCH_QUEUE_SERIAL); 
    [self.audioOutput setSampleBufferDelegate:self queue:audioCaptureQ]; 

    if([self.session canAddOutput:self.audioOutput]) 
     [self.session addOutput:self.audioOutput]; 
    self.audioConnection = [self.audioOutput connectionWithMediaType:AVMediaTypeAudio]; 

    self.videoOutput = [[AVCaptureVideoDataOutput alloc] init]; 
    [self.videoOutput setAlwaysDiscardsLateVideoFrames:YES]; 

    dispatch_queue_t videoCaptureQ = dispatch_queue_create("Video Capture Q", DISPATCH_QUEUE_SERIAL); 
    [self.videoOutput setSampleBufferDelegate:self queue:videoCaptureQ]; 

    if([self.session canAddOutput:self.videoOutput]) 
     [self.session addOutput:self.videoOutput]; 

    self.videoConnection = [self.videoOutput connectionWithMediaType:AVMediaTypeVideo]; 

    self.videoConnection.videoOrientation = AVCaptureVideoOrientationPortrait; 
    self.videoOrientation = [self.videoConnection videoOrientation]; 

    movieWriterQ = dispatch_queue_create("Movie Writer Q", DISPATCH_QUEUE_SERIAL); 

    self.previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:self.session]; 
    self.viewLayer = [preview layer]; 
    [self.viewLayer setMasksToBounds:YES]; 

    CGRect bounds = [preview bounds]; 
    [self.previewLayer setFrame:bounds]; 

    [self.previewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill]; 
    [self.viewLayer insertSublayer:self.previewLayer below:[[self.viewLayer sublayers] objectAtIndex:0]]; 

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
     [self.session startRunning]; 
    }); 

    return YES; 
} 

//代碼將相機切換

-(void)toggleCameraIsFront:(BOOL)isFront 
{ 
    AVCaptureDevicePosition desiredPosition; 
    if (isFront) { 
     desiredPosition = AVCaptureDevicePositionFront; 
     self.videoDeviceType = VideoDeviceTypeFrontCamera; 
    } 
    else { 
     desiredPosition = AVCaptureDevicePositionBack; 
     self.videoDeviceType = VideoDeviceTypeRearCamera; 
    } 


    NSArray *videoDevices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]; 
    for (AVCaptureDevice *device in videoDevices) 
    { 
     if ([device position] == desiredPosition) 
     { 
      AVCaptureDeviceInput *videoDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil]; 
      [self.session beginConfiguration]; 
      [self.session removeInput:self.videoInput]; 
      if ([self.session canAddInput:videoDeviceInput]) 
      { 
       [self.session addInput:videoDeviceInput]; 
       [self setVideoInput:videoDeviceInput]; 
      } 
      else 
      { 
       [self.session addInput:self.videoInput]; 
      } 

      [self.session removeOutput:self.videoOutput]; 

      AVCaptureVideoDataOutput *videoDeviceOutput = [[AVCaptureVideoDataOutput alloc] init]; 
      if ([self.session canAddOutput:videoDeviceOutput]) 
      { 
       [self.session addOutput:videoDeviceOutput]; 
       [self setVideoOutput:videoDeviceOutput]; 
       [self.videoOutput setAlwaysDiscardsLateVideoFrames:YES]; 

       // How to manage previously created videoCaptureQ in setupSessionWithPreview method ??? 
       // or do we need create instance variable as dispatch_queue_t videoCaptureQ ??? 
       dispatch_queue_t videoCaptureQ = dispatch_queue_create("Video Capture Q", DISPATCH_QUEUE_SERIAL); 
       [self.videoOutput setSampleBufferDelegate:self queue:videoCaptureQ]; 

       self.videoConnection = [self.videoOutput connectionWithMediaType:AVMediaTypeVideo]; 

       self.videoConnection.videoOrientation = AVCaptureVideoOrientationPortrait; 
       self.videoOrientation = [self.videoConnection videoOrientation]; 
      } 
      else 
      { 
       [self.session addOutput:self.videoOutput]; 
      } 

      [self.session commitConfiguration]; 
      break; 
     } 
    } 
} 

//代碼負責iOS中的7.0.x ONLY崩潰,與iOS完美作品6.x的&的iOS 7.1

@property(nonatomic, retain) AVAssetWriter *writer; 
@property(nonatomic, retain) AVAssetReader *reader; 
@property(nonatomic, retain) AVAssetReaderVideoCompositionOutput *videoOut; 
@property(nonatomic, retain) AVAssetReaderOutput *audioOut; 
@property(nonatomic, retain) AVAssetWriterInput *videoIn; 
@property(nonatomic, retain) AVAssetWriterInput *audioIn; 

dispatch_group_enter(self.dispatchGroup); 
[self.videoIn requestMediaDataWhenReadyOnQueue:self.videoWriterQ usingBlock:^(void) { 
    if(self.videoFinished) 
     return; 

    BOOL completedOrFailed = NO; 
    while([self.videoIn isReadyForMoreMediaData] && !completedOrFailed) 
    { 
     // App crashes here . 
     CMSampleBufferRef sample = [self.videoOut copyNextSampleBuffer]; 
     if(sample != NULL) 
     { 
      BOOL bret = [self.videoIn appendSampleBuffer:sample]; 
      CFRelease(sample); 
      sample = NULL; 
      completedOrFailed = !bret; 
     } 
     else 
     { 
      completedOrFailed = YES; 
     } 
    } 
    if(completedOrFailed) 
    { 
     if(!self.videoFinished) 
     { 
      [self.videoIn markAsFinished]; 
     } 
     self.videoFinished = YES; 
     dispatch_group_leave(self.dispatchGroup); 
    } 
}]; 

他重新是崩潰日誌

Date/Time:   2014-04-07 11:05:34.917 +0100 
OS Version:   iOS 7.0.6 (11B651) 
Report Version:  104 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Subtype: KERN_INVALID_ADDRESS at 0x7176d7e0 
Triggered by Thread: 0 

Thread 0 Crashed: 
0 libobjc.A.dylib     0x3848bb26 objc_msgSend + 6 
1 AVFoundation     0x2cf78650 -[AVCaptureVideoDataOutput _applyOverridesToCaptureOptions:] + 168 
2 AVFoundation     0x2cf7081c -[AVCaptureSession _resolvedCaptureOptionsByApplyingOverridesToCaptureOptions:preset:] + 344 
3 AVFoundation     0x2cf70b2c -[AVCaptureSession _resolvedCaptureOptionsForPreset:audioDevice:videoDevice:] + 108 
4 AVFoundation     0x2cf7235c -[AVCaptureSession _buildAndRunGraph] + 312 
5 AVFoundation     0x2cf6cc3c -[AVCaptureSession removeInput:] + 1008 
6 AVFoundation     0x2cf6ae0c -[AVCaptureSession dealloc] + 172 
7 Foundation      0x2e9d1a44 NSKVODeallocate + 60 
8 libobjc.A.dylib     0x3849bb06 objc_object::sidetable_release(bool) + 170 
9 libobjc.A.dylib     0x3848d002 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 354 
10 QuartzCore      0x3043e864 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 64 
11 CoreFoundation     0x2e01b1ca __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 18 
12 CoreFoundation     0x2e018b6c __CFRunLoopDoObservers + 280 
13 CoreFoundation     0x2e018eae __CFRunLoopRun + 726 
14 CoreFoundation     0x2df83c22 CFRunLoopRunSpecific + 518 
15 CoreFoundation     0x2df83a06 CFRunLoopRunInMode + 102 
16 GraphicsServices    0x32caa27e GSEventRunModal + 134 
17 UIKit       0x30827044 UIApplicationMain + 1132 
18 AppName       0x0013ed06 main (main.m:17) 
19 libdyld.dylib     0x38998ab4 start + 0 

Thread 1: 
0 libsystem_kernel.dylib   0x38a3c83c kevent64 + 24 
1 libdispatch.dylib    0x3897d210 _dispatch_mgr_invoke + 228 
2 libdispatch.dylib    0x3897cf96 _dispatch_mgr_thread$VARIANT$mp + 34 

Thread 2 name: com.apple.NSURLConnectionLoader 
Thread 2: 
0 libsystem_kernel.dylib   0x38a3ca8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x38a3c888 mach_msg + 44 
2 CoreFoundation     0x2e01a7be __CFRunLoopServiceMachPort + 150 
3 CoreFoundation     0x2e018ee4 __CFRunLoopRun + 780 
4 CoreFoundation     0x2df83c22 CFRunLoopRunSpecific + 518 
5 CoreFoundation     0x2df83a06 CFRunLoopRunInMode + 102 
6 Foundation      0x2e9be2f2 +[NSURLConnection(Loader) _resourceLoadLoop:] + 314 
7 Foundation      0x2ea33c82 __NSThread__main__ + 1058 
8 libsystem_pthread.dylib   0x38ab7c1a _pthread_body + 138 
9 libsystem_pthread.dylib   0x38ab7b8a _pthread_start + 98 
10 libsystem_pthread.dylib   0x38ab5c8c thread_start + 4 

Thread 3 name: com.apple.CFSocket.private 
Thread 3: 
0 libsystem_kernel.dylib   0x38a4f440 __select + 20 
1 CoreFoundation     0x2e01e680 __CFSocketManager + 480 
2 libsystem_pthread.dylib   0x38ab7c1a _pthread_body + 138 
3 libsystem_pthread.dylib   0x38ab7b8a _pthread_start + 98 
4 libsystem_pthread.dylib   0x38ab5c8c thread_start + 4 

Thread 4 name: AFNetworking 
Thread 4: 
0 libsystem_kernel.dylib   0x38a3ca8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x38a3c888 mach_msg + 44 
2 CoreFoundation     0x2e01a7be __CFRunLoopServiceMachPort + 150 
3 CoreFoundation     0x2e018ee4 __CFRunLoopRun + 780 
4 CoreFoundation     0x2df83c22 CFRunLoopRunSpecific + 518 
5 CoreFoundation     0x2df83a06 CFRunLoopRunInMode + 102 
6 Foundation      0x2e9713d6 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 250 
7 Foundation      0x2e9c230c -[NSRunLoop(NSRunLoop) run] + 76 
8 AppName       0x001637b6 +[AFURLConnectionOperation networkRequestThreadEntryPoint:] (AFURLConnectionOperation.m:184) 
9 Foundation      0x2ea33c82 __NSThread__main__ + 1058 
10 libsystem_pthread.dylib   0x38ab7c1a _pthread_body + 138 
11 libsystem_pthread.dylib   0x38ab7b8a _pthread_start + 98 
12 libsystem_pthread.dylib   0x38ab5c8c thread_start + 4 

Thread 5 name: com.apple.coremedia.player.async 
Thread 5: 
0 libsystem_kernel.dylib   0x38a3cadc semaphore_wait_trap + 8 
1 libdispatch.dylib    0x3897b428 _dispatch_semaphore_wait_slow + 172 
2 MediaToolbox     0x2f46f83c fpa_AsyncMovieControlThread + 1752 
3 CoreMedia      0x2e5ae234 figThreadMain + 192 
4 libsystem_pthread.dylib   0x38ab7c1a _pthread_body + 138 
5 libsystem_pthread.dylib   0x38ab7b8a _pthread_start + 98 
6 libsystem_pthread.dylib   0x38ab5c8c thread_start + 4 

Thread 6: 
0 libsystem_kernel.dylib   0x38a3ca8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x38a3c888 mach_msg + 44 
2 CoreFoundation     0x2e01a7be __CFRunLoopServiceMachPort + 150 
3 CoreFoundation     0x2e018ee4 __CFRunLoopRun + 780 
4 CoreFoundation     0x2df83c22 CFRunLoopRunSpecific + 518 
5 CoreFoundation     0x2df83a06 CFRunLoopRunInMode + 102 
6 libAVFAudio.dylib    0x2d006584 GenericRunLoopThread::Entry(void*) + 124 
7 libAVFAudio.dylib    0x2cffa99c CAPThread::Entry(CAPThread*) + 176 
8 libsystem_pthread.dylib   0x38ab7c1a _pthread_body + 138 
9 libsystem_pthread.dylib   0x38ab7b8a _pthread_start + 98 
10 libsystem_pthread.dylib   0x38ab5c8c thread_start + 4 

Thread 7 name: com.apple.coremedia.player.async 
Thread 7: 
0 libsystem_kernel.dylib   0x38a3cadc semaphore_wait_trap + 8 
1 libdispatch.dylib    0x3897b428 _dispatch_semaphore_wait_slow + 172 
2 MediaToolbox     0x2f46f83c fpa_AsyncMovieControlThread + 1752 
3 CoreMedia      0x2e5ae234 figThreadMain + 192 
4 libsystem_pthread.dylib   0x38ab7c1a _pthread_body + 138 
5 libsystem_pthread.dylib   0x38ab7b8a _pthread_start + 98 
6 libsystem_pthread.dylib   0x38ab5c8c thread_start + 4 

Thread 8 name: com.apple.coremedia.player.remote 
Thread 8: 
0 libsystem_kernel.dylib   0x38a3ca8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x38a3c888 mach_msg + 44 
2 MediaToolbox     0x2f475c58 FigExpressNotificationThread + 84 
3 CoreMedia      0x2e5ae234 figThreadMain + 192 
4 libsystem_pthread.dylib   0x38ab7c1a _pthread_body + 138 
5 libsystem_pthread.dylib   0x38ab7b8a _pthread_start + 98 
6 libsystem_pthread.dylib   0x38ab5c8c thread_start + 4 

Thread 9: 
0 libsystem_kernel.dylib   0x38a3ca8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x38a3c888 mach_msg + 44 
2 CoreFoundation     0x2e01a7be __CFRunLoopServiceMachPort + 150 
3 CoreFoundation     0x2e018ee4 __CFRunLoopRun + 780 
4 CoreFoundation     0x2df83c22 CFRunLoopRunSpecific + 518 
5 CoreFoundation     0x2dfc7736 CFRunLoopRun + 94 
6 CoreMotion      0x2e63a230 ___lldb_unnamed_function1404$$CoreMotion + 724 
7 libsystem_pthread.dylib   0x38ab7c1a _pthread_body + 138 
8 libsystem_pthread.dylib   0x38ab7b8a _pthread_start + 98 
9 libsystem_pthread.dylib   0x38ab5c8c thread_start + 4 

Thread 10 name: com.apple.coremedia.player.async 
Thread 10: 
0 libsystem_kernel.dylib   0x38a3cadc semaphore_wait_trap + 8 
1 libdispatch.dylib    0x3897b428 _dispatch_semaphore_wait_slow + 172 
2 MediaToolbox     0x2f46f83c fpa_AsyncMovieControlThread + 1752 
3 CoreMedia      0x2e5ae234 figThreadMain + 192 
4 libsystem_pthread.dylib   0x38ab7c1a _pthread_body + 138 
5 libsystem_pthread.dylib   0x38ab7b8a _pthread_start + 98 
6 libsystem_pthread.dylib   0x38ab5c8c thread_start + 4 

Thread 11: 
0 libsystem_kernel.dylib   0x38a4fc7c __workq_kernreturn + 8 
1 libsystem_pthread.dylib   0x38ab5dc6 _pthread_wqthread + 306 
2 libsystem_pthread.dylib   0x38ab5c80 start_wqthread + 4 

Thread 12: 
0 libsystem_kernel.dylib   0x38a4fc7c __workq_kernreturn + 8 
1 libsystem_pthread.dylib   0x38ab5dc6 _pthread_wqthread + 306 
2 libsystem_pthread.dylib   0x38ab5c80 start_wqthread + 4 

Thread 13: 
0 libsystem_kernel.dylib   0x38a3ca8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x38a3c888 mach_msg + 44 
2 MediaToolbox     0x2f588594 FigRemakerFamilyClient_ReaderExtractAndRetainNextSampleBuffer + 92 
3 MediaToolbox     0x2f5835a0 remoteReader_ExtractAndRetainNextSampleBuffer + 108 
4 AVFoundation     0x2cf2a8ba -[AVAssetReaderOutput copyNextSampleBuffer] + 222 
5 AppName       0x0016a320 __36-[MediaWriter performWrite:onError:]_block_invoke141 (MediaWriter.m:188) 
6 AVFoundation     0x2cf3d810 -[AVAssetWriterInputMediaDataRequester requestMediaDataIfNecessary] + 84 
7 libdispatch.dylib    0x38973d18 _dispatch_call_block_and_release + 8 
8 libdispatch.dylib    0x3897a26e _dispatch_queue_drain$VARIANT$mp + 370 
9 libdispatch.dylib    0x3897a066 _dispatch_queue_invoke$VARIANT$mp + 38 
10 libdispatch.dylib    0x3897acde _dispatch_root_queue_drain + 74 
11 libdispatch.dylib    0x3897af54 _dispatch_worker_thread2 + 52 
12 libsystem_pthread.dylib   0x38ab5dbc _pthread_wqthread + 296 
13 libsystem_pthread.dylib   0x38ab5c80 start_wqthread + 4 

Thread 14 name: com.apple.coremedia.player.async 
Thread 14: 
0 libsystem_kernel.dylib   0x38a3cadc semaphore_wait_trap + 8 
1 libdispatch.dylib    0x3897b428 _dispatch_semaphore_wait_slow + 172 
2 MediaToolbox     0x2f46f83c fpa_AsyncMovieControlThread + 1752 
3 CoreMedia      0x2e5ae234 figThreadMain + 192 
4 libsystem_pthread.dylib   0x38ab7c1a _pthread_body + 138 
5 libsystem_pthread.dylib   0x38ab7b8a _pthread_start + 98 
6 libsystem_pthread.dylib   0x38ab5c8c thread_start + 4 

Thread 15: 
0 libsystem_kernel.dylib   0x38a4fc7c __workq_kernreturn + 8 
1 libsystem_pthread.dylib   0x38ab5dc6 _pthread_wqthread + 306 
2 libsystem_pthread.dylib   0x38ab5c80 start_wqthread + 4 

Thread 16: 
0 libsystem_kernel.dylib   0x38a4fc7c __workq_kernreturn + 8 
1 libsystem_pthread.dylib   0x38ab5dc6 _pthread_wqthread + 306 
2 libsystem_pthread.dylib   0x38ab5c80 start_wqthread + 4 

Thread 17: 
0 libsystem_kernel.dylib   0x38a3ca8c mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x38a3c888 mach_msg + 44 
2 MediaToolbox     0x2f5896b4 FigRemakerFamilyClient_WriterAddSampleBuffer + 112 
3 MediaToolbox     0x2f581bec remoteWriter_AddSampleBuffer + 236 
4 AVFoundation     0x2cf3c144 -[AVFigAssetWriterTrack addSampleBuffer:error:] + 84 
5 AVFoundation     0x2cf3cfcc -[AVFigAssetWriterAudioTrack addSampleBuffer:error:] + 300 
6 AVFoundation     0x2cf39afa -[AVAssetWriterInputWritingHelper appendSampleBuffer:] + 74 
7 AVFoundation     0x2cf37d62 -[AVAssetWriterInput appendSampleBuffer:] + 46 
8 AppName       0x0016a190 __36-[MediaWriter performWrite:onError:]_block_invoke (MediaWriter.m:162) 
9 AVFoundation     0x2cf3d810 -[AVAssetWriterInputMediaDataRequester requestMediaDataIfNecessary] + 84 
10 libdispatch.dylib    0x38973d18 _dispatch_call_block_and_release + 8 
11 libdispatch.dylib    0x3897a26e _dispatch_queue_drain$VARIANT$mp + 370 
12 libdispatch.dylib    0x3897a066 _dispatch_queue_invoke$VARIANT$mp + 38 
13 libdispatch.dylib    0x3897acde _dispatch_root_queue_drain + 74 
14 libdispatch.dylib    0x3897af54 _dispatch_worker_thread2 + 52 
15 libsystem_pthread.dylib   0x38ab5dbc _pthread_wqthread + 296 
16 libsystem_pthread.dylib   0x38ab5c80 start_wqthread + 4 

Thread 18: 
0 libsystem_kernel.dylib   0x38a3e664 fsync + 8 
1 libsqlite3.dylib    0x3876d73c ___lldb_unnamed_function199$$libsqlite3.dylib + 44 
2 libsqlite3.dylib    0x387a59e8 ___lldb_unnamed_function529$$libsqlite3.dylib + 1168 
3 libsqlite3.dylib    0x3876d138 ___lldb_unnamed_function197$$libsqlite3.dylib + 336 
4 libsqlite3.dylib    0x38763004 ___lldb_unnamed_function156$$libsqlite3.dylib + 552 
5 libsqlite3.dylib    0x38744638 ___lldb_unnamed_function56$$libsqlite3.dylib + 1496 
6 libsqlite3.dylib    0x3875fc32 ___lldb_unnamed_function123$$libsqlite3.dylib + 38026 
7 libsqlite3.dylib    0x38755e2c sqlite3_step + 404 
8 libsqlite3.dylib    0x38734952 sqlite3_exec + 358 
9 CFNetwork      0x2dc14d30 __CFURLCache::ExecSQLStatement_NoLock(sqlite3*, char const*, int (*)(void*, int, char**, char**), void*, long) + 32 
10 CFNetwork      0x2dc84bb8 __CFURLCache::_PreProcessCacheTasks() + 108 
11 CFNetwork      0x2dc849da __CFURLCache::_CFURLCacheTimerCallback0() + 630 
12 CFNetwork      0x2dc84754 __CFURLCache::_CFURLCacheTimerCallback(void*) + 28 
13 libdispatch.dylib    0x3897c7fe _dispatch_source_invoke$VARIANT$mp + 258 
14 libdispatch.dylib    0x3897a232 _dispatch_queue_drain$VARIANT$mp + 310 
15 libdispatch.dylib    0x3897a066 _dispatch_queue_invoke$VARIANT$mp + 38 
16 libdispatch.dylib    0x3897acde _dispatch_root_queue_drain + 74 
17 libdispatch.dylib    0x3897af54 _dispatch_worker_thread2 + 52 
18 libsystem_pthread.dylib   0x38ab5dbc _pthread_wqthread + 296 
19 libsystem_pthread.dylib   0x38ab5c80 start_wqthread + 4 

Thread 0 crashed with ARM Thread State (32-bit): 
    r0: 0x176f9f60 r1: 0x30daa1e8  r2: 0x2cfeb38f  r3: 0x00000000 
    r4: 0x30dba133 r5: 0x18e7bde0  r6: 0x30dad051  r7: 0x27d087f8 
    r8: 0x38b3fc28 r9: 0x7176d7d4  r10: 0x1903c100  r11: 0x18fdbd70 
    ip: 0x38b1e868 sp: 0x27d087c4  lr: 0x2cf78655  pc: 0x3848bb26 
    cpsr: 0x60000030 

任何人都可以告訴我什麼是錯誤的iOS 7.0.x只?在其他iOS版本上,它可以正常工作。任何形式的幫助表示讚賞。

謝謝。

回答

0

您是否正確地釋放了?

嘗試添加這些行到你的dealloc方法,

[self.session removeInput:self.videoIn]; 
[self.session removeOutput:self.videoOut]; 
+0

爲什麼我要做這個,如果我使用的是ARC? – iOSAppDev

+0

這不會釋放一個對象。這是一個清理任務。如果您想在視圖關閉或釋放時執行一些清理任務,則使用dealloc(使用ARC)。這是最好的地方,在這種情況下你可以實施它。另一個例子是徹底刪除觀察者或關閉網絡連接。因此,您可以在ARC下繼承dealloc,但不允許在子類方法中調用[super dealloc]。 – sleepwalkerfx

相關問題