flash再生不可

2,103 views
Skip to first unread message

コモロン

unread,
Jun 9, 2011, 1:57:29 AM6/9/11
to 日本Androidの会
以下のコードのアプリを実行すると ver2.1ではflash再生できてver2.2や3.0では再生できません。
何が原因でしょうか?

--------------------------------------------------------------------------------------
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setPluginsEnabled(true);

webView.setVerticalScrollbarOverlay(true);
webView.setWebViewClient(new WebViewClient());

WebSettings settings = webView.getSettings();
settings.setLoadsImagesAutomatically(true);
settings.setSupportMultipleWindows(true);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setLightTouchEnabled(true);

settings.setPluginsEnabled(true);
settings.setJavaScriptEnabled(true);

webView.loadUrl("flashの入ったURL");
--------------------------------------------------------------------------------------

端末にはflash Playerのアプリ、インストール済みです。

ご教示のほど、よろしくお願い致します。

dmp

unread,
Jun 9, 2011, 7:37:47 AM6/9/11
to 日本Androidの会
dmpです。

WebSettings | Android Developers
http://developer.android.com/reference/android/webkit/WebSettings.html

"setPluginsEnabled(boolean flag)
This method is deprecated. This method has been deprecated in favor of
setPluginState(WebSettings.PluginState)"
setPluginsEnabled()メソッドはdeprecatedになったので、代わりにsetPluginState()を使うよう記載されて
います。
この変更はAPIv8で実施されているので、Android 2.2を堺に動かなくなっています。

setPluginState(PluginState.ON)を呼べば動作しますが、Android 2.1のデバイスでこれを呼ぶ、
またはPluginStateクラスを参照するとアプリが落ちます。

Backward Compatibility for Applications | Android Developers
http://developer.android.com/resources/articles/backward-compatibility.html

上記ページを参考に後方互換性を確保されるとよいと思います。


On 6月9日, 午後2:57, コモロン <comoron0...@yahoo.co.jp> wrote:
> 以下のコードのアプリを実行すると ver2.1ではflash再生できてver2.2や3.0では再生できません。
> 何が原因でしょうか?
>
> --------------------------------------------------------------------------- -----------

dmp

unread,
Jun 10, 2011, 9:08:56 AM6/10/11
to 日本Androidの会
dmpです。

機密情報なども含まれていないようですので、MLに戻させていただきます。

WebSettings.PluginStateはただのクラス名(正確にはEnum)なので、setPluginStateメソッドの引数に与えても
動きません。

WebSettings.PluginState | Android Developers
http://developer.android.com/reference/android/webkit/WebSettings.PluginState.html

Enumの実際の値である WebSettings.PluginState.ON ないし
WebSettings.PluginState.ON_DEMAND を引数に与えれば動作します。

Android Developersにあるドキュメントを参照されれば、どのように使えばよいか分かっていただけるかと思います。


2011/6/10 コモロン <comor...@yahoo.co.jp>:
> dmpさん
>
> ありがとうございます。
>
> settings.setPluginState(WebSettings.PluginState);
> ~~~~~~~~~
>
> に変えたところ、PluginStateは解決できないか、フィールドではありませんと
> エラーが出ます。
>
> どういった書き方にすればよろしいでしょうか?
>
>
> On 6月9日, 午後8:37, dmp <dmp...@gmail.com> wrote:
>> dmpです。
>>
>> WebSettings | Android Developershttp://developer.android.com/reference/android/webkit/WebSettings.html
>>
>> "setPluginsEnabled(boolean flag)
>> This method is deprecated. This method has been deprecated in favor of
>> setPluginState(WebSettings.PluginState)"
>> setPluginsEnabled()メソッドはdeprecatedになったので、代わりにsetPluginState()を使うよう記載されて
>> います。
>> この変更はAPIv8で実施されているので、Android 2.2を堺に動かなくなっています。
>>
>> setPluginState(PluginState.ON)を呼べば動作しますが、Android 2.1のデバイスでこれを呼ぶ、
>> またはPluginStateクラスを参照するとアプリが落ちます。
>>
>> Backward Compatibility for Applications | Android Developershttp://developer.android.com/resources/articles/backward-compatibilit...
>>
>> 上記ページを参考に後方互換性を確保されるとよいと思います。
>>
>> On 6月9日, 午後2:57, コモロン <comoron0...@yahoo.co.jp> wrote:
>>
>>
>>
>> > 以下のコードのアプリを実行すると ver2.1ではflash再生できてver2.2や3.0では再生できません。
>> > 何が原因でしょうか?
>>
>> > --------------------------------------------------------------------------- -----------
>> > WebView webView = (WebView) findViewById(R.id.webview);
>> > webView.getSettings().setPluginsEnabled(true);
>>
>> > webView.setVerticalScrollbarOverlay(true);
>> > webView.setWebViewClient(new WebViewClient());
>>
>> > WebSettings settings = webView.getSettings();
>> > settings.setLoadsImagesAutomatically(true);
>> > settings.setSupportMultipleWindows(true);
>> > settings.setSupportZoom(true);
>> > settings.setBuiltInZoomControls(true);
>> > settings.setLightTouchEnabled(true);
>>
>> > settings.setPluginsEnabled(true);
>> > settings.setJavaScriptEnabled(true);
>>
>> > webView.loadUrl("flashの入ったURL");
>> > --------------------------------------------------------------------------- -----------
>>
>> > 端末にはflash Playerのアプリ、インストール済みです。
>>
>> > ご教示のほど、よろしくお願い致します。- 引用テキストを表示しない -
>>
>> - 引用テキストを表示 -
>

comor...@yahoo.co.jp

unread,
Jun 10, 2011, 9:28:04 AM6/10/11
to android-g...@googlegroups.com
dmpさん
 
ありがとうございます。
教えていただいた setPluginState(WebSettings.PluginState) でやってみましたが、
PluginStateの箇所でエラーが発生してしまいます。
 
どのように記述すればよろしいでしょうか?
 
よろしくお願い申し上げます。

dmp <dmp...@gmail.com> wrote:
dmpです。

WebSettings | Android Developers
http://developer.android.com/reference/android/webkit/WebSettings.html

"setPluginsEnabled(boolean flag)
This method is deprecated. This method has been deprecated in favor of
setPluginState(WebSettings.PluginState)"
setPluginsEnabled()メソッドはdeprecatedになったので、代わりにsetPluginState()を使うよう記載されて
います。
この変更はAPIv8で実施されているので、Android 2.2を堺に動かなくなっています。

setPluginState(PluginState.ON)を呼べば動作しますが、Android 2.1のデバイスでこれを呼ぶ、
またはPluginStateクラスを参照するとアプリが落ちます。

Backward Compatibility for Applications | Android Developers
http://developer.android.com/resources/articles/backward-compatibility.html

上記ページを参考に後方互換性を確保されるとよいと思います。


On 6月9日, 午後2:57, コモロン wrote:
> 以下のコードのアプリを実行すると ver2.1ではflash再生できてver2.2や3.0では再生できません。
> 何が原因でしょうか?
>
> --------------------------------------------------------------------------- -----------
> WebView webView = (WebView) findViewById(R.id.webview);
> webView.getSettings().setPluginsEnabled(true);
>
> webView.setVerticalScrollbarOverlay(true);
> webView.setWebViewClient(new WebViewClient());
>
> WebSettings settings = webView.getSettings();
> settings.setLoadsImagesAutomatically(true);
> settings.setSupportMultipleWindows(true);
> settings.setSupportZoom(true);
> settings.setBuiltInZoomControls(true);
> settings.setLightTouchEnabled(true);
>
> settings.setPluginsEnabled(true);
> settings.setJavaScriptEnabled(true);
>
> webView.loadUrl("flashの入ったURL");
> --------------------------------------------------------------------------- -----------
>
> 端末にはflash Playerのアプリ、インストール済みです。
>
> ご教示のほど、よろしくお願い致します。

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。


 
 

comor...@yahoo.co.jp

unread,
Jun 10, 2011, 9:31:21 AM6/10/11
to android-g...@googlegroups.com
dmpさん
 
ご返信ありがとうございます。
ドキュメントに記載されておりました。
失礼しました。
 
ありがとうございました。


dmp <dmp...@gmail.com> wrote:
dmpです。

機密情報なども含まれていないようですので、MLに戻させていただきます。

WebSettings.PluginStateはただのクラス名(正確にはEnum)なので、setPluginStateメソッドの引数に与えても
動きません。

WebSettings.PluginState | Android Developers
http://developer.android.com/reference/android/webkit/WebSettings.PluginState.html

Enumの実際の値である WebSettings.PluginState.ON ないし
WebSettings.PluginState.ON_DEMAND を引数に与えれば動作します。

Android Developersにあるドキュメントを参照されれば、どのように使えばよいか分かっていただけるかと思います。


2011/6/10 コモロン :

コモロン

unread,
Jun 12, 2011, 10:41:09 PM6/12/11
to 日本Androidの会
dmpさん

settings.setPluginState(WebSettings.PluginState.ON);

にしたところ、



On 6月10日, 午後10:08, dmp <dmp...@gmail.com> wrote:
> dmpです。
>
> 機密情報なども含まれていないようですので、MLに戻させていただきます。
>
> WebSettings.PluginStateはただのクラス名(正確にはEnum)なので、setPluginStateメソッドの引数に与えても
> 動きません。
>
> WebSettings.PluginState | Android Developershttp://developer.android.com/reference/android/webkit/WebSettings.Plu...
>
> Enumの実際の値である WebSettings.PluginState.ON ないし
> WebSettings.PluginState.ON_DEMAND を引数に与えれば動作します。
>
> Android Developersにあるドキュメントを参照されれば、どのように使えばよいか分かっていただけるかと思います。
>
> 2011/6/10 コモロン <comoron0...@yahoo.co.jp>:
> >> - 引用テキストを表示 -- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

コモロン

unread,
Jun 12, 2011, 10:43:13 PM6/12/11
to 日本Androidの会
dmpさん

settings.setPluginState(WebSettings.PluginState.ON);

にしたところ、エラーが発生したので、インポートに以下を追加したところ、

import android.webkit.WebSettings.PluginState;

android.webkit.WebSettings.PluginStateは見つかりませんと出ます。

何が原因でしょうか?



On 6月10日, 午後10:31, <comoron0...@yahoo.co.jp> wrote:
> dmpさん
>
> ご返信ありがとうございます。
> ドキュメントに記載されておりました。
> 失礼しました。
>
> ありがとうございました。
>
> dmp <dmp...@gmail.com> wrote:
>
> dmpです。
>
> 機密情報なども含まれていないようですので、MLに戻させていただきます。
>
> WebSettings.PluginStateはただのクラス名(正確にはEnum)なので、setPluginStateメソッドの引数に与えても
> 動きません。
>
> WebSettings.PluginState | Android Developershttp://developer.android.com/reference/android/webkit/WebSettings.Plu...
> 詳細については、http://groups.google.com/group/android-group-japan?hl=jaからこのグループにアクセスしてください。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

dmp

unread,
Jun 13, 2011, 10:17:55 AM6/13/11
to 日本Androidの会
コモロンさん

dmpです。

コンパイルエラーが発生する理由は、プロジェクトのビルドターゲットがAndroid 2.2未満の場合は
Android 2.2で追加されたクラスが参照できないからです。
ビルドターゲットをAPI Level8へ上げれば解決します。

ただし、新しいAPI Levelで追加されたクラスやメソッドをそれよりも古いバージョンのOSで呼ぶと例外によりアプリが落ちます。
これを回避するには、以下のページなどを参考に後方互換性を確保してください。

Backward Compatibility for Applications | Android Developers
http://developer.android.com/resources/articles/backward-compatibility.html
※原文
Androidアプリの後方互換性
http://www.textdrop.net/soft/android-backword-compatibility/
※日本語訳

Android backward code compatibility - Stack Overflow
http://stackoverflow.com/questions/4873827/android-backward-code-compatibility
Reply all
Reply to author
Forward
0 new messages