【问题标题】:AVPlayerStatus?AVPlayer状态?
【发布时间】:2011-03-25 15:32:45
【问题描述】:

所以我在阅读应该如何使用 AVPlayerStatus 属性时遇到问题

正如文档告诉我的那样,我已经制作了@property(nonatomic, readonly) AVPlayerStatus *status;,但似乎无法找出我是如何使用的

AVPlayerStatusUnknows..

我想用它来做这样的事情

while(AVPlayerStatusUnknows)
{ 
      //DO SOMETHING 
} 

有人可以帮我吗?

谢谢

【问题讨论】:

    标签: iphone objective-c cocoa ios avplayer


    【解决方案1】:

    @Patrick 您不能使用 AVPlayerStatus 对象,因为它不是类或结构(或联合)。它是一个枚举器。我们用它来检查主要在 switch 中的条件(如果我们正在创建它)。 @Amorya建议的上述方法是如何使用AVPlayerStatus

    希望这对你有意义。

    检查文档。

    http://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVPlayer_Class/Reference/Reference.html

    编辑:

    您正在寻找的是这样的东西。我认为这行不通或可能。但你会得到基本的想法。

    [yourActivityIndicator startAnimation];
    while(yourAVPlayer.status == AVPlayerStatusUnknown) {}
    [yourActivityIndicator stopAnimation];
    

    或者,如果您只是使用 GCD 调用自定义队列中的最后 2 行,它会显示您要查找的内容。

    类似这样的东西,(不确定这是否是确切的语法)

    [yourActivityIndicator startAnimation];
    
    dispatch_queue(^{
           while(yourAVPlayer.status == AVPlayerStatusUnknown) {}
           [yourActivityIndicator stopAnimation];
     });
    

    【讨论】:

    • 对不起,但我确实阅读了文档,它对我没有多大意义.. 我只想在我的 avplayer 流式传输时显示一个活动指示器.. 不是在播放音乐时,而是在播放音乐时..如果这不是这样做的方法,那我该怎么做呢? :/ 并感谢您的回答 :)
    • 所以我只是尝试了你的和@Amorya 的解决方案,仍然有一些问题:/ 当我使用 dispatch_queue 时它给了我一个错误.. 并且使用 player.status == avplayerstatusunknow,它冻结了..我的 TableView 中有我的播放器,所以当我按下一个单元格时,它会开始播放链接.. 希望你能看到我想用我的代码做什么:pastebin.com/9J6uMN6N
    • 您是否检查过如何使用 GCD。我告诉过你,在第一种情况下屏幕会冻结。所以尝试使用 Grand Central Dispatch
    • 找到这个网站:cocoasamurai.blogspot.com/2009/09/… 可以吗?
    • 是的,它是一个非常好的网站。当您能够实现您想要的目标时,您可以将其附加到您的问题中。
    【解决方案2】:

    您不需要自己创建该属性:它是 AVPlayer 对象上的属性。

    你应该可以做到while (yourAVPlayer.status == AVPlayerStatusUnknown) {}。用 AVPlayer 类的对象替换 yourAVPlayer

    【讨论】:

    • 感谢您的快速回答 :) 我插入了它,但我收到了这个错误:错误:'AVPlayerStatusUnknows' undeclared(第一次在这个函数中使用)
    • 应该是 AVPlayerStatusUnknown 而不是 AVPlayerStatusUnknows(注意最后一个字母)。
    • arh ya.. 让它工作,我构建时没有错误.. 但是当我在手机上尝试它时,当我按下 tableview 中的一个单元格时它会冻结.. 该功能需要在我的表格视图中,所以当我按下一个单元格时,我得到了 AVPlayer url,在它缓冲时,我需要显示指示器.. 为什么我需要这个功能,如果我可以将它用于那个目的..跨度>
    猜你喜欢
    • 2023-03-10
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多