CocoaでAVFoundationを使うサンプル
Revision | 00334e3f18b27fd73df51b0af88586adae8d2fac (tree) |
---|---|
Time | 2012-06-12 23:33:50 |
Author | Hori <masaki@MBP....> |
Commiter | Hori |
エラートラッキング
@@ -138,12 +138,22 @@ | ||
138 | 138 | [_asset autorelease]; |
139 | 139 | _asset = [asset retain]; |
140 | 140 | |
141 | - [_asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:@"tracks"] | |
141 | + NSString *tracksKey = @"tracks"; | |
142 | + [_asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] | |
142 | 143 | completionHandler: |
143 | 144 | ^ { |
144 | 145 | dispatch_async(dispatch_get_main_queue(), |
145 | 146 | ^{ |
146 | - self.item = [AVPlayerItem playerItemWithAsset:_asset]; | |
147 | + NSError *error = nil; | |
148 | + AVKeyValueStatus status = [_asset statusOfValueForKey:tracksKey error:&error]; | |
149 | + if(status == AVKeyValueStatusLoaded) { | |
150 | + self.item = [AVPlayerItem playerItemWithAsset:_asset]; | |
151 | + } else { | |
152 | + NSLog(@"Asset's tracks were not loaded.\n%@", [error localizedDescription]); | |
153 | + if(![self presentError:error]) { | |
154 | + [self close]; | |
155 | + } | |
156 | + } | |
147 | 157 | }); |
148 | 158 | }]; |
149 | 159 | } |