でAirplayingしているときに「このビデオは...で再生されています」画面を表示する方法を知っている人はいますAVPlayer
か? VEVO iPhone アプリの例:
デフォルトでAVPlayer
は、黒い画面のみが表示されます。そのような画面を自分で実装する必要がありますか、それともデフォルトのコンポーネントを利用できますか?
これは少し遅いかもしれませんが、私はこれを見つけたか、少なくとも回避策を見つけました。UILabel を追加し、次のような方法で選択したデバイスの名前を取得します。
CFDictionaryRef description;
UInt32 dataSize = sizeof(description);
if (AudioSessionGetProperty(kAudioSessionProperty_AudioRouteDescription, &dataSize, &description) == kAudioSessionNoError) {
CFArrayRef outputs = CFDictionaryGetValue(description, kAudioSession_AudioRouteKey_Outputs);
if (outputs) {
if(CFArrayGetCount(outputs) > 0) {
CFDictionaryRef currentOutput = CFArrayGetValueAtIndex(outputs, 0);
NSLog(@"%@", currentOutput);
CFStringRef outputType = CFDictionaryGetValue(currentOutput, kAudioSession_AudioRouteKey_Type);
if (CFStringCompare(outputType, kAudioSessionOutputRoute_AirPlay, 0) == kCFCompareEqualTo) {
NSDictionary *desc = (__bridge NSDictionary *)(currentOutput);
NSLog(@"%@", [desc objectForKey:@"RouteDetailedDescription_Name"]);
}
}
}
}
もっと良い方法があるはずですが、これは良いアプローチです。また、AudioSessionGetProperty は非推奨であり、これは AVAudioSession を使用して行うことができます。
お役に立てれば
MPMoviePlayerController を使用すると、デフォルトでその画像が表示されます。AVPlayer には UI がないため、MPMoviePlayerController が使用されていない場合、その画像も使用できません。
また、画像が MPMoviePlayerController の外部のコンポーネントとして利用できるとは思いません。