15

iOS 6 シミュレーターで finishWriting が壊れているようです - 永久にハングします。これは非推奨になり、新しい finishWritingWithCompletionHandler: に置き換えられました。これもハンドラーを呼び出しません。

iOS 6 を実行している実際のデバイスでは、これは通常どおり問題なく動作します。また、以前の iOS シミュレーターでも問題なく動作します。iOS 6 シミュレーターのバグのようです。

これを経験した人、または私が間違っていることを証明できる人はいますか?

4

2 に答える 2

12

私もこの問題を抱えていましたが、開始後に endSessionAtSourceTime: を呼び出していないことに気付きました。これで私の問題は解決しました。

于 2013-02-01T20:45:27.590 に答える
2

シミュレータで回避策を見つけました。

stop はビデオ処理スレッドをデッドロックするように見えるため、代わりにメイン スレッドで stop を呼び出すことを回避します。

//      in iOS6 Simulator this blocks the video processing thread call back in UI thread.
//       BOOL stop = [assetWriter finishWriting];
[self performSelectorOnMainThread:@selector(stopInOtherThread) withObject:nil]; 

-(void)stopInOtherThread{
    //Stop doesn't block in MainThread
    BOOL stop = [assetWriter finishWriting];
    NSLog(@" assetWriter finishWriting :%d",stop);
}

この回避策は、finishWritingWithCompletionHandler では機能しないようです。

Apple にバグを報告できるかどうか試してみます。

于 2012-09-22T09:08:58.337 に答える