1

ポッドキャスト ストリームの再生の終了を検出しようとしています。を使用して、loadRequest:[NSURLRequest requestWithURL:location]再生中の mp3 ファイルを含む Web ページをロードしています。<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");
}

Web ページに読み込まれたオーディオ ファイルの再生の終了を判断するための適切な解決策はありますか? そうでない場合、再生の終了を検出するより良い方法は何でしょうか? このソリューションの背後にあるアイデアが正しい場合、この実装で何が間違っていたのでしょうか?

4

1 に答える 1

0

これが問題かどうかはわかりませんが、デリゲート メソッド内でインスタンス変数 theWebView をシャドウしないでください。theWebView を webView に変更すると、デリゲートが起動されるという問題が解決されるかどうかはわかりませんが、最初に確認するのはそこです。

元の質問に答えるために、このデリゲートは、ストリーミング接続の最後ではなく、Webview 応答が受信された後に呼び出されます。また、ストリームの完了へのフックの解決策も検討しています。

于 2011-07-30T14:44:34.030 に答える