0

나는 이것에 대해 많이 연구했지만 아무것도 찾지 못했습니다. 내 목표는 모든 URL을 (브라우저에서 선택한) 비디오 파일로 여는 것입니다. 모든 URL 비디오 IE의 파일 확장자가 끝난 경우 일반적으로 : www.example.com/wow.mp4 난 그냥이 의도 필터 내 매니페스트 사용할 수 있습니다내 앱에서 비디오 URL을 여는 중

http://www.videoweed.es/mobile/....17da9f11345a424f02a5 
:

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <data android:scheme="http"/> 
    <data android:scheme="https"/> 
    <data android:mimeType="video/*"> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
</intent-filter> 

을하지만 그건 어디에서나 그렇지 않다, 일부 URL처럼 시작

다음 올바른 링크로 리디렉션하십시오. 인 텐트 필터를 사용하여 이러한 종류의 비디오를 가로채는 방법을 알고 싶습니다. MXPlayer는이 기능을 구현합니다.

답변

1

mime 유형을 얻으려면 HTTPConnection 모듈을 호출 한 다음 mime 유형을 사용하여 활동을 시작해야합니다. 아래 코드 섹션을 참조하여 mime 유형의 URL을 얻을 수 있습니다.

당신은 Android - Detect URL mime type

import java.net.URL; 
import java.net.URLConnection; 

public static String getMimeType(String url) 
{ 
    String mimeType = null; 

    // this is to handle call from main thread 
    StrictMode.ThreadPolicy prviousThreadPolicy = StrictMode.getThreadPolicy(); 

    // temporary allow network access main thread 
    // in order to get mime type from content-type 

    StrictMode.ThreadPolicy permitAllPolicy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
    StrictMode.setThreadPolicy(permitAllPolicy); 

    try 
    { 
     URLConnection connection = new URL(url).openConnection(); 
     connection.setConnectTimeout(150); 
     connection.setReadTimeout(150); 
     mimeType = connection.getContentType(); 
     Log.i("", "mimeType from content-type "+ mimeType); 
    } 
    catch (Exception ignored) 
    { 
    } 
    finally 
    { 
     // restore main thread's default network access policy 
     StrictMode.setThreadPolicy(prviousThreadPolicy); 
    } 

    if(mimeType == null) 
    { 
     // Our B plan: guessing from from url 
     try 
     { 
      mimeType = URLConnection.guessContentTypeFromName(url); 
     } 
     catch (Exception ignored) 
     { 
     } 
     Log.i("", "mimeType guessed from url "+ mimeType); 
    } 
    return mimeType; 
} 
+0

감사를 참조 할 수 있지만 전체 솔루션이 아니다. 이 코드는 앱이 수신자 또는 앱 자체에서 URL에 대해 선택되면 실행되며 mimeType이 동영상이 아닌 경우 내 애플리케이션이 열리지 만 의도를 처리 할 수는 없습니다. 혼자서 명단을 통해이를 어떻게 달성 할 수 있을지 생각해보십시오. – Aashir

+0

프레임 워크의 주제라고 생각합니다. 액티비티가 시작되기 전에 처리해야하므로 프레임 워크가 이러한 기능을 지원하도록 변경해야합니다. –

+0

이런 식으로 생각하면 비디오를 재생하기 위해 선택기 대화 상자에 I.E가 있어야합니다. 그래서 나는 사용자가 틀린 링크를 선택했다는 것을 알아 내기 위해서만 내 앱을 시작하게하고 내 앱은 그것에 대해 아무 것도하지 못하게한다. – Aashir

관련 문제