WebView не воспроизводит SWF-файл на Android

1

Я разрабатываю приложение для Android-планшета Android, которое должно воспроизводить swf файлы внутри WebView. Сначала я попытался открыть SWF файл с устройства, чем через интернет, без везения. Появляется WebView, но внутри WebView все, что я вижу, это черный экран (с белой линией шириной 3-4 пикселя справа). Если я загружаю один и тот же URL-адрес в браузер устройства, файл флэш-памяти будет работать хорошо. Я думаю, что Im пропустил что-то в настройке WebView, но после нескольких часов поиска и поиска в Google я до сих пор не знаю, что.

Код Java:

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    setContentView(R.layout.presentation);

    presentationWebView = (WebView) findViewById(R.id.presentation_webview);

    presentationWebView.getSettings().setJavaScriptEnabled(true);
    presentationWebView.getSettings().setPluginsEnabled(true);
    presentationWebView.getSettings().setAllowFileAccess(true);
    presentationWebView.loadUrl("http://my_domain/fileName.swf");

}

Презентация .xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <WebView
        android:id = "@+id/presentation_webview"
        android:layout_width = "fill_parent"
        android:layout_height = "fill_parent"/>
</LinearLayout>

Спасибо, что у меня есть вопросы. Ripityom

  • 0
    возможный дубликат Загрузите SWF в WebView, который, кажется, обеспечивает решение.
Теги:
android-webview
flash

3 ответа

5
Лучший ответ

У меня это получилось наконец! Нужно только добавить атрибут

android:hardwareAccelerated = "true"

в файл манифеста.

  • 0
    Это довольно интересно! Могу я спросить, какое устройство и версия Android использовались в этом случае? На двух моих устройствах SWF-файлы работают без включенной настройки аппаратного ускорения.
  • 0
    После нескольких разочаровывающих дней, наблюдая за пустым экраном, я обнаружил это ... android: hardwareAccelerated = "true" ... честно ... это спасло мой день !!!
2

Я просто копировал и вставлял ваш код в новый проект, менял местоположение файла swf, и он работал отлично. (Экран пуст, пока файл .swf не завершит загрузку, что может занять некоторое время в некоторых случаях).

У вашего приложения есть разрешение INTERNET? URL-адрес определенно правильный? Попробуйте с несколькими различными SWF файлами и посмотрите, есть ли разница.

0

спасибо Pipityom. Атрибут "android: hardwareAccelerated" сохраняет мою жизнь. Работайте и для меня.

Здесь я публикую объяснение из документа разработчика Android. "Начиная с Android 3.0, рендеринг OpenGL с аппаратным ускорением доступен для приложений, чтобы повысить производительность для многих обычных операций 2D-графики. Когда аппаратный ускоритель рендеринга включен, большинство операций в Canvas, Paint, Xfermode, ColorFilter, Shader и Camera. Это приводит к более плавной анимации, более плавной прокрутке и большей отзывчивости в целом даже для приложений, которые явно не используют библиотеки OpenGL Framework.

Обратите внимание, что не все операции OpenGL 2D ускоряются. Если вы включите аппаратный ускоритель, проверьте свое приложение, чтобы убедиться, что он может использовать средство визуализации без ошибок. "

Ещё вопросы

Сообщество Overcoder
Наверх
Меню