ALAssetsLibraryからすべてのビデオアセットを取得しています(ネイティブカメラアプリから記録されているものすべて)。私はその後、各ビデオにこれを行い、各ビデオ資産に列挙を実行しています:ALAsset URLから作成した場合、AVAssetにトラックや再生時間がありません
// The end of the enumeration is signaled by asset == nil.
if (alAsset) {
//Get the URL location of the video
ALAssetRepresentation *representation = [alAsset defaultRepresentation];
NSURL *url = [representation url];
//Create an AVAsset from the given URL
NSDictionary *asset_options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:AVURLAssetPreferPreciseDurationAndTimingKey];
AVAsset *avAsset = [[AVURLAsset alloc] initWithURL:url options:asset_options];//[AVURLAsset URLAssetWithURL:url options:asset_options];
//Here is the problem
NSLog([NSString stringWithFormat:@"%i", [avAsset.tracks count]]);
NSLog([NSString stringWithFormat:@"%f", CMTimeGetSeconds(avAsset.duration)]);
}
のNSLogは、私は私のALAssetから得ているAVAssetが0のトラックがあり、0.0秒の持続時間を有することを報告しています。私はURLをチェックして、それは正しいと思われる "assets-library://asset/asset.MOV?id = 9F482CF8-B4F6-40C2-A687-0D05F5F25529 & ext = MOV"です。 alAssetは実際にはビデオであり、正しいビデオであることはわかっています。なぜなら、私はalAsset.thumbnailを表示していて、ビデオの正しいサムネイルが表示されているからです。
これはすべて、avAssetの初期化で何か問題が起こっていると思いますが、私の人生にとって何がうまくいかないのか分かりません。誰でも助けてくれますか?
更新:
私はそれが私に正しいサムネイルを与えるので、奇妙である、ALAssetRepresentationによって私に与えられたURLに障害があることが確認できたと思います。私はまだそれを引き起こすかわからないんだけど
0
Error Domain=NSCocoaErrorDomain Code=4 "The operation couldn’t be completed. (Cocoa error 4.)" UserInfo=0x19df60 {}
:それは私にこれを与え
NSLog([NSString stringWithFormat:@"%i", [url checkResourceIsReachableAndReturnError:&error]]);
NSLog([NSString stringWithFormat:@"%@", error]);
:私はこのコードを追加しました。私が気付いている唯一の事は、urlです。これは "assets-library://asset/asset.MOV?id = 9F482CF8-B4F6-40C2-A687-0D05F5F25529 & ext = MOV"です。私はこれを探し回っていたので。他の場所で見たものは、 "assets-library://asset/asset.MOV?id = 1000000394 & ext = MOV"のようになり、英数字のダッシュで区切られた名前ではなく数字で示されます。
私が役に立ったら、私はXCode 4.2 BetaとiOS5を使っています。あなたが何かを考えることができるかどうか私に教えてください。ありがとう。
iOS 7でも問題ありませんか?私はios7で問題がある。 –