안드로이드

WebView 내에서 플래시 파일 재생중 액티비티를 빠져 나갔는데도, 음악이 재생될 때

raulyo 2012. 4. 16. 16:47

문제점

안드로이드 애플리케이션 내의 WebView 에서 플래시 파일을 재생하고 있는데, 뒤로가기 버튼을 누르거나 혹은 intent로 다른 Activity로 넘어가게 되도 해당 플래시 파일은 계속 재생된다. 이때, 다른 Activity 로 넘어 갔는데도 불구하고, 이전 Activity 에서 재생되던 플래시에서 소리가 나는 등의 문제가 발생 한다.

해결책

01.public class FlashPlayerWebView{
02.private WebView webView;
03. 
04.@Override
05.public void onCreate(Bundle savedInstanceState){
06.super.onCreate(savedInstanceState);
07.webView = (WebView)findViewById(R.layout.flash_player_webview);
09.}
10. 
11.public void onPause(){
12.super.onPause();
13.webView.loadUrl("about:blank");
14.}
15.}

Activity 가 생성될 때, webView 에 Flash 가 재생될 Url을 호출한다.
여기에서 onPause() 에 해당하는 내용을 처리하지 않으면, 뒤로가기 버튼을 누르거나 혹은 다른 Activity 로 전환되었을때도 Activity Stack 에 계속 남아 있어 플래시가 계속 재생된다. 

Activity가 전환될때, onPause() 함수가 호출되는데, 위의 코드 처럼 해당 webview에 다른 url 을 호출하면 플래시가 재생되는 것을 막을 수 있다.


 
댓글
2010.12.14 16:13:24
작은광명
저는 URL 호출이 아니라서 위의 방법을 사용하지 않고 제 블로그 포스팅(http://frantik.org/1175) 방법으로 해결했습니다.
웹뷰에 이벤트를 호출해주는 방식으로.... ^^*

댓글
2010.12.23 09:29:34
아나코폴라
Webview에서 set함수중에 cache가 붙었고 파라미터가 boolean형이 있는데 그걸 true를 해주면 사라집니다.webview.getsetting.에 있는 함수였나 예전에해서 기억이 가물가물
댓글
2010.12.23 09:49:41
아나코폴라
webView.dispatchWindowVisibilityChanged(View.GONE); 이거였네여..
댓글
2011.01.01 14:31:42
senicy
webView.dispatchWindowVisibilityChanged(View.GONE);  이걸 써봤는데 잘 안되는것 같은데.. 어떻게 하셨나요~??