HTML Video Katalog (WebView)

S

sharpp

Neues Mitglied
0
Hallo,
Dies ist meine ersten Anwendung unter Android.

Ich versuche eine an sich Simple Anwendung auf eine Galaxy Tab 10.1 umzusetzen.
Die Anforderung an die Anwendung sind:
Anzeigen von Kategorien (Html5 Seiten)
Abspielen von Produktvideos (Html5 mit eingebettetem Videos)

Mein erster versuch war recht Simpel gedacht die benötigten Dateien auf das Tablet ziehen. Das hat auch soweit geklappt nur werden die Videos nicht angezeigt, lediglich wird der Ton abgespielt. Könnte am Standard HTML Viewer liegen, da die Videos abgespielt werden wenn ich die Seite per W-LAN aus von meiner Entwicklungs-Maschine aufrufe (auf dem Tablet).
Nur ist das Problem das das Projekt Offline auf dem Tablet verfügbar sein muss.

Darauf hin habe ich versucht die HTML Files per WebView zuladen.
Das funktioniert zwar nur so halb ,da sämtliche CSS Eigenschaften ignoriert werden.
Mein onCreate schaut wie folgt aus:
PHP:
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        String data = "";
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.index)));
            String line;

            while ((line = br.readLine()) != null) {
                data += line;
            }
            br.close();
            
        } catch (IOException e) {
            e.printStackTrace();
            data = "Failed loading web page!";
        }

        mWebView.loadData(data, "text/html", "UTF-8");
        mWebView.setWebViewClient(new FirstViewClient());       
    }
Hat jemand vielleicht eine Idee wie ich es hin bekomme das die CSS Dateien mit geladen werden?
Zumal ich nicht so genau weiss wie die CSS Datein richtig aufgerufen werden müssen wenn diese im Projekt im Ordner "assets/css" liegen und die HTML Dateien unter "res/raw".

Hoffe es kann mir jemand weiterhelfen.
 
Hallo, ich habe noch etwas an der APP gearbeitet nun wird soweit alles Richtig angezeigt jedoch lassen sich die Videos noch nicht richtig Abspielen. Hier erhalte ich die Meldung "Video kann nicht wiedergeben werden", leider werde ich auch aus den Fehlermeldungen im Log nicht schlau.

  • 02-24 11:12:27.080: V/webview(4682): singleCursorHandlerTouchEvent -getEditableSupport FASLE
  • 02-24 11:12:27.680: I/MediaPlayer(4682): prepareAsync called in state 4
  • 02-24 11:12:27.680: E/MediaPlayer(4682): error (1, -2147483648)
  • 02-24 11:12:27.770: E/MediaPlayer(4682): Error (1,-2147483648)
  • 02-24 11:12:29.770: V/webview(4682): singleCursorHandlerTouchEvent -getEditableSupport FASLE
Kennt hier jemand vllt die Bedeutung der Fehlermeldungen.
Die Videos sind mit H.264 + AAC Codiert.

Anbei der neue Code
Code:
public class MyActivity extends Activity {
    /** Called when the activity is first created. */
    WebView mWebView;
    final Activity activity = this;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
        //this.getWindow().requestFeature(Window.FEATURE_LEFT_ICON);
        setContentView(R.layout.main);
        
        mWebView = (WebView) findViewById(R.id.webview);

        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setAllowFileAccess(true);
        mWebView.getSettings().setPluginsEnabled(true);
        mWebView.getSettings().setSupportZoom(false);
        mWebView.getSettings().setAppCacheEnabled(false);
        mWebView.getSettings().setAllowContentAccess(true);
        mWebView.getSettings();
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

        mWebView.setWebChromeClient(new MyWebChromeClient(activity));
        mWebView.setWebViewClient(new WebViewClient());
        
        mWebView.loadUrl("file:///android_asset/site/index.html");
    }

}

class MyWebChromeClient extends WebChromeClient{
    private Activity mode;

    public MyWebChromeClient(Activity activity){
        this.mode=activity;
    }
        
    public void onProgressChanged(WebView view, int progress){
        mode.setTitle("Loading...");
        mode.setProgress(progress * 100);

        if(progress == 100)
            mode.setTitle(R.string.app_name);
    }  
}

class MyWebViewClient extends WebViewClient{
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url){
        view.loadUrl(url);
        return true;
    }    
}
 

Ähnliche Themen

K
Antworten
3
Aufrufe
1.148
Kapikalaani
K
H
Antworten
0
Aufrufe
917
HoustonWeHaveAProblem
H
L
Antworten
17
Aufrufe
1.199
jogimuc
J
Zurück
Oben Unten