Un AVPlayer
svolge un AVPlayerItem
. AVPlayerItem
s sono supportati da oggetti della classe AVAsset
. Quando si utilizza il metodo playerWithURL:
di AVPlayer
, viene creato automaticamente il AVPlayerItem
supportato da una risorsa che è una sottoclasse di AVAsset
denominata AVURLAsset
. AVURLAsset
ha una proprietà URL
.
Quindi, sì, nel caso in cui si è fornito è possibile ottenere il NSURL
della voce attualmente in riproduzione abbastanza facilmente. Ecco una funzione di esempio di come fare questo:
-(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];
}
Non una rapida esperto, ma sembra che può essere fatto in rapida più brevemente.
func urlOfCurrentlyPlayingInPlayer(player : AVPlayer) -> URL? {
return ((player.currentItem?.asset) as? AVURLAsset)?.url
}
I AVPlayer' [doc] '(https://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVPlayer_Class/Reference/ Reference.html) non sembra dare un modo per afferrare l'URL. Puoi provare a vedere se risponde a 'valueForKey:' con varie permutazioni di '@" URL "', ma dubito che sarà esposto. – coneybeare