2012-03-01 2 views
2

Как и в названии, мне нужно загрузить видео (.mp4) из папки с ресурсами в WebView. Я попробовал несколько вещей:Загрузить видео из активов в веб-просмотр HTML5 - Android

// Первый

String webpage = "<!doctype html><head><meta charset='utf-8'></head><body><video id='video' controls='controls' autoplay='autoplay' height=" + m.getHeight() + " width=" + m.getWidth() + "><source src='file:///android_asset/1003/landscape_1003_1_m864.mp4' /></video></body></html>"; 

wv.loadData(webpage, "text/html", "utf-8"); 

// Второй

Загрузите тот же веб-страницы, но с помощью loadUrl() метод

wv.loadUrl(webpage); 

// Third

Загрузка одной и той же страницы, но с помощью другого метода

wv.loadDataWithBaseURL("file:///android_asset/", webpage,"text/html", "utf-8", null); 

Я пытался изменить первый параметр в нуль, а также на веб-странице, ...

Все должно быть добавлено динамически (сам WebView, URL-адрес для видео, ширина, height, ...), поэтому создание XML-файла не является вариантом.

Многие решения, которые я нашел в Интернете, заключались в перемещении видео в папку Raw или SD-карту, но это не вариант (бизнес-решение).

Было бы хорошо, если бы кто-нибудь мог мне помочь.

P.S. Если бы вы могли помочь мне с тем же, но показ видео в видеообъявлении со всеми элементами управления, такими как элемент видео html5 (play, pause, seekbar, fullscreen), не стесняйтесь!

+0

эй @ceetn если юй получил правильный ответ на этот PLS сделать выкладываю Ответ – Zombie

+0

Извините, это просто невозможно. – Ceetn

+0

спасибо за ответ ... и есть ли у вас какие-либо идеи о такой же загрузке с SD-карты? – Zombie

ответ

2

У меня была та же проблема. К сожалению, я не нашел решения. INSTAND этого я просто сделать что-то вроде этого:

  • Открыть сайт в WebView
  • Когда пользователь открывает ссылку, которая заканчивается .mp4 открыть новый вид деятельности с видеоплеером.
  • Передача URL-адрес
  • Открыть видео

    public void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    
    parent = (TabLayout)this.getParent(); 
         setContentView(R.layout.XXXXXXXXXX); 
         l = (ProgressBar)findViewById(R.id.webL); 
         Resources res = getResources(); 
         mWebView = (WebView) findViewById(R.id.webview); 
         mWebView.getSettings().setJavaScriptEnabled(true);     
         mWebView.getSettings().setPluginsEnabled(true); 
         mWebView.getSettings().setSupportZoom(true); 
         mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
         mWebView.loadUrl(res.getString(R.string.XXXXXX)); 
         mWebView.getSettings().setAllowFileAccess(true); 
         mWebView.setWebViewClient(new WebViewClient() 
         { 
          @Override 
          public void onPageFinished(WebView view, String url) 
          { 
           super.onPageFinished(view, url); 
           l.setVisibility(View.INVISIBLE);       
          } 
    
          @Override 
          public void onPageStarted (WebView view, String url, Bitmap favicon) 
          { 
           super.onPageStarted(view, url, favicon); 
           l.setVisibility(View.VISIBLE); 
          } 
    
          @Override 
          public boolean shouldOverrideUrlLoading(WebView view, String url) 
          { 
           if (url.endsWith(".mp4")) 
           {       
            data.url = url; 
            Intent intent = new Intent(getApplicationContext(), VideoPlayer.class); 
            startActivity(intent); 
            return true; 
           } 
           else 
           { 
            return super.shouldOverrideUrlLoading(view, url); 
           } 
          } 
    
         }); 
    
    } 
    

..и мой видеоплеер:

public class VideoPlayer extends Activity 
{ 
private VideoView mVideoView; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    this.setContentView(R.layout.video); 
    mVideoView = (VideoView) findViewById(R.id.surface_video); 

    mVideoView.setVideoURI(Uri.parse(data.url)); 
    mVideoView.setMediaController(new MediaController(this)); 
    mVideoView.requestFocus(); 
    mVideoView.start(); 
} 
0

Вы бы использовали ниже код и дайте мне знать, если эта работа запомнится. Android 2.2 будет поддерживать html5.

webview.loadDataWithBaseURL("file:///android_asset", 

         "<video src=\"diagram1.mp4\" />", mimetype, encoding, null); 


final String mimetype = "text/html"; 
    final String encoding = "UTF-8";