2010-01-06 6 views

답변

2

아니요, 불가능합니다. Android에서 미디어 재생을 제공하는 OpenCORE 미디어 라이브러리는 .flv 파일을 지원하지 않습니다.

지원되는 미디어 형식 목록은 here입니다. 이러한 형식은 일반 Android에서 지원됩니다. 같은 페이지에서 T-Mobile G1이 지원하는 몇 가지 추가 형식을 찾을 수 있습니다.

물론 특정 장치에서 추가 미디어 형식을 지원할 수도 있습니다. 그러나 이것은 장치마다 다를 수 있습니다.

+0

HTC Hero에 내장 된 Flash 런타임이 있지만 독립 실행 형 FLV 파일은 재생되지 않습니다. –

+0

Nexus One에는 Flash 10.1이 탑재되어 있지만, 독립 실행 형 FLV 파일을 재생할 수 있는지 여부는 알 수 없습니다. – CommonsWare

+0

올바르지 않습니다. 예, 가능합니다. 저는 FLV를 사용하여 iOS, Android 및 웹 브라우저에서 볼 수있는 하드웨어 용 스트리밍 HD 비디오 소프트웨어를 제작 한 회사에서 근무했습니다. 불행히도 코드를 공유 할 수는 없지만 확실히 할 수 있다고 말할 수 있습니다. – jungledev

3

WebView에서 플래시 플러그인을 사용하여 FLV를 재생할 수 있습니다. 여기를 참조하십시오 : http://www.synesthesia.it/playing-flash-flv-videos-in-android-applications

종종 휴대 기기에서 웹 콘텐츠를 표시하는 앱을 만들 때 웹에서 널리 사용되는 FLV 비디오를 처리해야합니다 (HTML5가 세상을 지배 할 때까지). 가장 좋은 방법은 일부 변환기 (예 : ffmpeg)로 변환하는 것입니다. 그러나 원본 비디오에 액세스 할 수 없거나 다른 적절한 형식으로 변환 할 수없는 경우에는 여기에서 다음을 찾을 수 있습니다. Android 애플리케이션에서 Flash FLV 비디오를 삽입하고 재생하는 방법에 대한 빠른 자습서입니다.

이것은 WebView, FLV를 재생할 수있는 SWF 플레이어, 물론 Android 용 Flash 플러그인을 사용하여 수행됩니다.

첫째,이 같은 웹보기와 레이아웃 XML 생성 :

package it.synesthesia.flvplayer; 

import java.lang.reflect.InvocationTargetException; 
import java.lang.reflect.Method; 
import java.net.URLEncoder; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.webkit.WebView; 

public class ViewVideo extends Activity { 

    WebView webView; 
    String htmlPre = "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\"></head><body style='margin:0; pading:0; background-color: black;'>"; 
    String htmlCode = 
      " <embed style='width:100%; height:100%' src='http://www.platipus.nl/flvplayer/download/1.0/FLVPlayer.swf?fullscreen=true&[email protected]@' " + 
      " autoplay='true' " + 
      " quality='high' bgcolor='#000000' " + 
      " name='VideoPlayer' align='middle'" + // width='640' height='480' 
      " allowScriptAccess='*' allowFullScreen='true'" + 
      " type='application/x-shockwave-flash' " + 
      " pluginspage='http://www.macromedia.com/go/getflashplayer' />" + 
      ""; 
    String htmlPost = "</body></html>"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.view_video); 

     webView = (WebView)findViewById(R.id.webview); 

     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setAllowFileAccess(true); 
     webView.getSettings().setPluginsEnabled(true); 
     webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); //thanks Patrick! 

     htmlCode = htmlCode.replaceAll("@[email protected]", video_link); 
     webView.loadDataWithBaseURL("fake://fake/fake", htmlPre+htmlCode+htmlPost, "text/html", "UTF-8", null); 
    } 




    @Override 
    protected void onPause(){ 
     super.onPause(); 

     callHiddenWebViewMethod("onPause"); 

     webView.pauseTimers(); 
     if(isFinishing()){ 
      webView.loadUrl("about:blank"); 
      setContentView(new FrameLayout(this)); 
     } 
    } 

    @Override 
    protected void onResume(){ 
     super.onResume(); 

     callHiddenWebViewMethod("onResume"); 

     webView.resumeTimers(); 
    } 

    private void callHiddenWebViewMethod(String name){ 
     // credits: http://stackoverflow.com/questions/3431351/how-do-i-pause-flash-content-in-an-android-webview-when-my-activity-isnt-visible 
     if(webView != null){ 
      try { 
       Method method = WebView.class.getMethod(name); 
       method.invoke(webView); 
      } catch (NoSuchMethodException e) { 
       Lo.g("No such method: " + name + e); 
      } catch (IllegalAccessException e) { 
       Lo.g("Illegal Access: " + name + e); 
      } catch (InvocationTargetException e) { 
       Lo.g("Invocation Target Exception: " + name + e); 
      } 
     } 
    } 

} 

일부 설명 :

    다음

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

    을, 액티비티 클래스를 만들고, 여기 추출물이다

  • 마찬가지로 FLV 플레이어가 필요합니다. 나는 위대한을 사용했다 & 무료 FLVPlayer http://www.platipus.nl/flvplayer/download/1.0/
  • FLV 플레이어는 그물에 웹 사이트에 있어야합니다. .swf를 앱의/assets 폴더에 넣고 거기에서 호출하려고 시도했지만 FLV 비디오를로드하지 못했습니다. 누군가가 이것을 고칠 수 있으면 알려주세요!
  • htmlCode에는 비디오를 "전체 화면"(전체 화면 크기로 채우기)으로 표시하는 코드가 들어 있습니다.
  • callHiddenWebViewMethod는 매우 중요합니다. 그렇지 않으면 활동이 더 이상 보이지 않을 때 동영상이 계속 재생됩니다 (오디오도 마찬가지입니다). 이것에 Credis는 코멘트에서 연결되는 sliseshare 포스터에 간다. 감사! 경고 : 이것은 대부분 해킹입니다! 예상대로 작동하지 않거나 향후 작동을 멈출 수 있습니다. Btw, 그것은 나를 위해 아주 잘 작동했습니다.
+1

이 질문에 대답 할 수 있지만, 답변의 핵심 부분을 더 많이 포함하고 참조 용 링크를 제공하는 것이 바람직합니다 (http://meta.stackoverflow.com/q/8259). –

+0

답변에 기사를 복사하여 붙여 넣었습니다. – FrancescoR

+0

가 작동하지 않는 것 같습니다. – NarendraJi

1

시도 vitamio. 프로젝트에 매우 쉽게 가져올 수있는 mediaplayer와 유사한 라이브러리입니다. 유일한 점은 flv 비디오 파일도 지원한다는 것입니다.

관련 문제