자신이 콘텐츠 제공 업체를 통해이를 수행하는 방법을 찾았습니다. 질문이 android play movie inside expansion file 인 콘텐츠 제공 업체에 대한 힌트를 얻었지만 그 질문에서 URL은 외부 응용 프로그램을 시작하는 데 사용되지 않았습니다.
우리는 구글의 APEZProvider 확장하는 컨텐트 프로 클래스가 필요합니다
public class ZipFileContentProvider extends APEZProvider {
@Override
public String getAuthority() {
return "com.example.expansionexperiment.provider";
}
}
을 그리고 매니페스트에 추가하고 내 보내야 :
<provider
android:exported="true"
android:name="com.example.expansionexperiment.ZipFileContentProvider"
android:authorities="com.example.expansionexperiment.provider" />
(매니페스트 및 getAuthority의 권한)해야 똑같아.
이제 우리는 확장 파일 내부의 파일에 열린 우리당을 만들 수 있습니다
// Filename inside my expansion file
String filename = "video/video.mp4";
String uriString = "content://com.example.expansionexperiment.provider" + File.separator + filename;
Uri uri = Uri.parse(uriString);
// Start video view intent
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "video/*");
startActivity(intent);
콘텐츠 제공자가 제공하는 지금 바로 URL과 함께 내에서 zip 파일 및 파일에 액세스 할 수 있습니다.
그러나 PhoneGap의 Media 플러그인은 URL이 http로 시작하지 않으면 "/ sdcard /"를 URL 앞에 삽입하기 때문에 콘텐츠 공급자를 지원하지 않습니다. (!!!) 따라서 Zip 콘텐츠 제공 업체를 통해 오디오 파일을 재생하려면 오디오 플러그인을 직접 작성해야합니다.
궁금한 점이 있다면 File 플러그인이 URL을 찾을 수 없기 때문입니다. https://github.com/agamemnus/cordova-plugin-media/commit/6fd5193225c291a11b65e6a261b0974a30e30e8d ... Pasi : 예를 들어 Chromium을 퍼가기 위해 더 이상 미디어 플러그인을 사용할 필요가 없습니다. 횡단 보도와''플랫폼/안드로이드/자산/xwalk-command-line''에서''xwalk - 미디어 재생을위한 필수 - 제스처 요구 사항 ''을 사용하십시오! – Agamemnus