使用AVPlayer进行Airplaying时如何显示“此视频正在播放...”?

时间:2013-04-21 12:08:22

标签: ios avplayer

在使用AVPlayer进行Airplaying时,是否有人知道如何显示“此视频正在播放...”屏幕?来自VEVO iPhone应用程序的示例:

VEVO app airplaying a video to Apple TV

默认情况下,AVPlayer只显示黑屏。我是否必须自己实现这样的屏幕,或者是否可以使用默认组件?

3 个答案:

答案 0 :(得分:1)

似乎这个答案可能会指向正确的方向:https://stackoverflow.com/a/17231895/171933

希望它有所帮助!

答案 1 :(得分:1)

可能这有点晚了,但我想出了或者至少有一个解决方法。我添加了一个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完成。

希望这有帮助

答案 2 :(得分:0)

使用MPMoviePlayerController时默认显示该图像。由于AVPlayer没有UI,因此如果不使用MPMoviePlayerController,该图像也不可用。

另外,我不认为图像可以作为MPMoviePlayerController之外的组件使用。