iPhone 的 webViewDidFinishLoad 是不是会检测到流式音频文件的“播放结束”

Posted

技术标签:

【中文标题】iPhone 的 webViewDidFinishLoad 是不是会检测到流式音频文件的“播放结束”【英文标题】:Will iPhones webViewDidFinishLoad Detect End of Playback" of Streamed Audio FileiPhone 的 webViewDidFinishLoad 是否会检测到流式音频文件的“播放结束” 【发布时间】:2011-02-24 18:21:29 【问题描述】:

我正在尝试检测播客流的播放结束。我正在使用loadRequest:[NSURLRequest requestWithURL:location] 加载包含正在播放的 mp3 文件的网页。在查看了问题档案后,我认为<UIWebViewDelegate> 协议的实现,特别是webViewDidFinishLoad 方法可能是答案。但是,在实现它之后,当音频文件完成时,我没有看到这个方法被调用。事实上,我从未见过该方法被调用,这让我相信我可能没有正确实现它。这是我所做的:

在我的头文件中:

@interface MyWebViewController : UIViewController<UIWebViewDelegate> 
    NSURL *location;    // holds the web address that will be loaded by this app
    IBOutlet UIWebView *theWebView;

在我的类实现文件中:

- (void)viewDidLoad 
    [super viewDidLoad];

    theWebView.delegate = self;

    [theWebView loadRequest:[NSURLRequest requestWithURL:location]];


- (void)webViewDidFinishLoad:(UIWebView *)theWebView 
    NSLog(@"view did finish");

这是确定加载到网页中的音频文件播放结束的正确解决方案吗?如果不是,那么检测播放结束的更好方法是什么?如果这个解决方案背后的想法是正确的,那么这个实现我做错了什么?

【问题讨论】:

【参考方案1】:

我不确定这是否是问题所在,但您不应该在委托方法中隐藏您的实例变量 theWebView。我不知道将 theWebView 更改为 webView 会解决您的委托被解雇的问题,但这是我首先要看的地方。

为了回答您的原始问题,在收到 Webview 响应后而不是在流连接结束时调用此委托。我也在寻找一种解决方案,以挂钩到流的完成。

【讨论】:

以上是关于iPhone 的 webViewDidFinishLoad 是不是会检测到流式音频文件的“播放结束”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 的 UIWebView 的文档目录中使用 Javascript?

Surface Pro4链接不上iphone手机的热点

在 iphone 5 和 iphone 6 中动态设置字体大小

iphone13和12外观的区别 iphone13和iphone12对比哪个好

iPhone 5 与 iPhone 4 的图像命名

iPhone 各大机型设备号