Будут ли iPhone webViewDidFinishLoad определять конец воспроизведения "потокового аудио файла - PullRequest
1 голос
/ 24 февраля 2011

Я пытаюсь определить конец воспроизведения потока подкаста.Я использую 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 Ответ

0 голосов
/ 30 июля 2011

Я не уверен, является ли это проблемой или нет, но вы не должны shadow вашу переменную экземпляра theWebView в методе делегата. Я не знаю, что замена WebView на webView решит вашу проблему с увольнением делегата, но именно здесь я бы посмотрел в первую очередь.

Чтобы ответить на ваш первоначальный вопрос, этот делегат вызывается после того, как ответ Webview получен не в конце потокового соединения. Я также ищу решение для подключения к завершению потока.

...