0

次のhtmlコードを取得しました。

<span id="video-teaser">
    <span>Click here for a <strong>FREE</strong> hot video</span>
    <video src="http://example.com/videos/nakednews.mp4" controls="" poster="http://example.com//img/iphone-video-btn.png" id="videoTeaser" height="1"></video>
</span>

私は2つの解決策を考え出そうとしました..javascript addlistenerを使用し、それが押されたときにビデオをトリガーします.

     <script type="text/javascript">
            var video = document.getElementById('videoTeaser');
            var elementToTrigger=document.getElementById('video-teaser');
                    elementToTrigger.addEventListener('click',function(){
                    video.play();
                    },false);
      </script>

どちらのソリューションも機能しません。サイトの PC バージョンで、ビデオ ティーザー スパンをクリックすると、ビデオ自体が機能します。

これに対する解決策は何でしょうか..

4

3 に答える 3

2

http://code.google.com/p/html5webview/source/checkoutのsvnリンクで提供されているコードを試してください。正常に動作します。

于 2012-04-18T12:47:58.403 に答える
1

これは、Android < 4.0 の既知の問題です。

これは回避策です:

Webview では、独自の ChromeClient を設定し、
この関数をオーバーライドする必要があります。

        _customViewCallback = callback;
        if (view instanceof FrameLayout){  
             FrameLayout frame = (FrameLayout) view;  
             if (frame.getFocusedChild() instanceof VideoView){  
                 final VideoView video = (VideoView) frame.getFocusedChild(); 
                 _customView = video;
                 frame.removeView(video);  
                 Activity a = (Activity)_context;
                 a.setContentView(video);  
                 video.setOnCompletionListener(new OnCompletionListener() {  

                    @Override  
                    public void onCompletion(MediaPlayer mp) { 
                        mp.stop();
                        video.stopPlayback();
                        onHideCustomView();
                    } 
                });  
                 video.setOnErrorListener(new OnErrorListener() {  

                    @Override  
                    public boolean onError(MediaPlayer mp, int what, int extra) {  
                        return false;  
                    }  
                });  
                 if (!video.isPlaying())
                     video.start();  
             }  
         }  

そして、オーバーライドOnHideCustomViewして処理を追加し、追加します(ビデオを別の時間に開くことができるように):

_customViewCallback.onCustomViewHidden();

これらのリンクはあなたに役立つかもしれません:

WebView と HTML5 <ビデオ>

AndroidでWebビューでビデオを再生するには?

WebViewはAndroidのデフォルトのビデオプレーヤーを開いていませんか?

于 2012-04-18T11:59:25.217 に答える
0

script タグ内のコードは、span タグのコンテンツを読み込んだ後に機能します。次のように、script タグを span タグの下に配置します。

<span id="video-teaser">
    <span>Click here for a <strong>FREE</strong> hot video</span>
    <video src="http://example.com/videos/nakednews.mp4" controls="" poster="http://example.com//img/iphone-video-btn.png" id="videoTeaser" height="1"></video>
</span>

 <script type="text/javascript">
            var video = document.getElementById('videoTeaser');
            var elementToTrigger=document.getElementById('video-teaser');
                    elementToTrigger.addEventListener('click',function(){
                    video.play();
                    },false);
      </script>
</body>
于 2012-04-18T11:54:54.217 に答える