-
VideoViewのビデオ再生のデモを書くのは簡単だと思いましたが、ピットがもっと一般的であるとは思っていませんでした。
- パーミッションを追加する必要があります:ネットワーク、読み取りおよび書き込みメモリを少なくすることはできません。また、AndroidManifest.xmlとJavaコードを追加する必要があり、1つを見逃すことはできません。もちろん、パーミッションはRxPermissionフレームワークを導入する必要があります。
- RxPermissionフレームワークでは、rxjavaとrxandroidを追加でインポートする必要がありますが、githubドキュメントには記載されていません。驚いた、驚かなかった、驚かなかった。
-
コードを同封し、感謝せずに持ち帰ります。
プロジェクトディレクトリのbuild.gradleファイル
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
appディレクトリのbuild.gradleファイル
dependencies {
...
//添加如下代码
implementation 'com.github.tbruyelle:rxpermissions:0.10.2'
implementation 'io.reactivex.rxjava2:rxjava:2.0.1'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
}
//使用方法
public class MainActivity extends AppCompatActivity {
VideoView vv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vv = findViewById(R.id.vv);
getPermission();
}
private void getPermission() {
new RxPermissions(MainActivity.this)
.request(Manifest.permission.INTERNET, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(new Consumer<Boolean>() {
@Override
public void accept(Boolean aBoolean) throws Exception {
if (aBoolean) {
playVideo();
Log.e("xxx", "yy");
} else {
Log.e("xxx", "xx");
}
}
});
}
private void playVideo() {
vv.setVideoPath("https://www.w3school.com.cn/example/html5/mov_bbb.mp4");
vv.start();
}
}