iPadのビデオでさまざまなメタデータアイテムを識別しようとしています。これまでAVATsetライブラリを使ってファイルを見つけ、metadataForFormat:
を使ってAVMetadataItemsの配列を生成することができました。このファイルには、iTunesおよびQuicktimeユーザーのデータ形式しか見つかりませんでした。問題は私がその情報を持っていることです、私は何が何であるかを特定する方法がありません。私は、メタデータキーでインデックスされた情報を持つ辞書をロードしようとしましたが、AVMetadataItemのkey
プロパティを使用すると、数値を返すように正しく動作しないように見えます(デバッガはそのNSCFNumberを示します)。iOSのAVAssetのAVMetadataItemでキー名を取得しています
NSLog(@"metadata: %@", meta);
:読むためのNSLogラインを変更する。なお、
metadata: key = -1452383891
metadata: key = -1452841618
metadata: key = 1684370275
metadata: key = 1818518899
metadata: key = 1937009003
metadata: key = -1453101708
:
ALAssetRepresentation *representation = [[valAsset defaultRepresentation] retain];
NSURL *url = [representation url];
AVURLAsset *aAsset = [[AVURLAsset URLAssetWithURL:url options:nil] retain];
metaDataDict = [[NSMutableDictionary dictionary] retain];
NSArray *fmtmetadata = [aAsset metadataForFormat:@"com.apple.itunes"];
for (AVMetadataItem* meta in fmtmetadata)
{
[metaDataDict setObject:[meta stringValue]
forKey:[meta key]];
NSLog(@"metadata: key = %@", [meta key]);
}
これは、デバッガコンソールで次のような出力が得られます。ここで私がやっていることのいくつかのサンプルコードです
は次のような出力を返します。
metadata: keySpace=itsk, key=desc, commonKey=(null), locale=(null), value=This is the Description of the Video, time={INVALID}, duration={INVALID}, extras={
dataType = 1;
}
何か助けていただければ幸いです!
GREAT、感謝その答えは、私はそれについてデリケートな方法があるのかどうか分かりました。 – wideize
うーん...これはテストされていないが、私は 'NSIntegerキーは= [メタキー]のようなものだと思う;' 'NSStringの*キー文字列= [NSStringのstringWithFormat: "%4S" @、&キー]' が動作するはずです。 – tundrabot
ありがとう...ここで私は何をやったのですか: NSUInteger akey = NSSwapInt([(NSNumber *)[meta key] unsignedIntegerValue]); NSString * keyString = [NSString stringWithFormat:@ "%。4s"、&akey]; – wideize