Ein AVPlayer
spielt eine AVPlayerItem
. AVPlayerItem
s werden durch Objekte der Klasse AVAsset
unterstützt. Wenn Sie die playerWithURL:
-Methode von verwenden, wird automatisch die AVPlayerItem
erstellt, die von einem Asset unterstützt wird, das eine Unterklasse von AVAsset
mit dem Namen AVURLAsset
ist. AVURLAsset
hat eine URL
Eigenschaft.
Also, ja, in dem Fall, den Sie zur Verfügung gestellt haben, können Sie die NSURL
des aktuell spielenden Artikels ziemlich einfach bekommen. Hier ist ein Beispiel davon ab, wie dies zu tun:
-(NSURL *)urlOfCurrentlyPlayingInPlayer:(AVPlayer *)player{
// get current asset
AVAsset *currentPlayerAsset = player.currentItem.asset;
// make sure the current asset is an AVURLAsset
if (![currentPlayerAsset isKindOfClass:AVURLAsset.class]) return nil;
// return the NSURL
return [(AVURLAsset *)currentPlayerAsset URL];
}
kein geschickter Experte, aber es scheint, kann es in swift kurz mehr getan werden.
func urlOfCurrentlyPlayingInPlayer(player : AVPlayer) -> URL? {
return ((player.currentItem?.asset) as? AVURLAsset)?.url
}
Die 'AVPlayer' [docs] (https://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVPlayer_Class/Reference/ Reference.html) scheint keine Möglichkeit zu geben, die URL zu erfassen. Sie können versuchen, zu sehen, ob es auf 'valueForKey:' mit verschiedenen Permutationen von '@" URL "antwortet, aber ich bezweifle, dass es herausgestellt wird. – coneybeare