有没有办法从已使用URL初始化的AVPlayer对象访问URL,如下所示:
NSURL *url = [NSURL URLWithString: @"http://www.example.org/audio"];
self.player = [AVPlayer playerWithURL: url];
Run Code Online (Sandbox Code Playgroud)
NJo*_*nes 80
一个人AVPlayer
玩AVPlayerItem
.AVPlayerItem
s由类的对象支持AVAsset
.当您使用它的playerWithURL:
方法时,AVPlayer
它会自动创建AVPlayerItem
由作为AVAsset
named 的子类的资产支持AVURLAsset
.AVURLAsset
有URL
房产.
所以,是的,在你提供的情况下,你可以NSURL
很容易地获得当前播放的项目.这是一个如何执行此操作的示例函数:
-(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];
}
Run Code Online (Sandbox Code Playgroud)
不是一个快速的专家,但它似乎可以更迅速地完成.
func urlOfCurrentlyPlayingInPlayer(player : AVPlayer) -> URL? {
return ((player.currentItem?.asset) as? AVURLAsset)?.url
}
Run Code Online (Sandbox Code Playgroud)
Swift 3的解决方案
func getVideoUrl() -> URL? {
let asset = self.player?.currentItem?.asset
if asset == nil {
return nil
}
if let urlAsset = asset as? AVURLAsset {
return urlAsset.url
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
let url: URL? = (player?.currentItem?.asset as? AVURLAsset)?.url
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24694 次 |
最近记录: |