exoPlayer이용해서 동영상 재생 어플을 한번 만들어 보려고 하는데요.
구글링해서 어찌어찌 코딩은 했고,어플은 실행되는데 아무런 오류도 안나고, 파일 재생도 안되고, 아무런 동작을 안하네요
뭐가 잘못된걸까요?
테스트 기계가 갤럭시S8에 안드로이드9버전인데 이게 상관이 있을수도 있을까요?
아래 해당 소스입니다.
bundle.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "app.example.exoplayer"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
// https://mvnrepository.com/artifact/com.google.android.exoplayer/exoplayer
implementation 'com.google.android.exoplayer:exoplayer:2.8.4'
implementation 'com.google.android.exoplayer:exoplayer-core:2.8.4'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.8.4'
}
자바소스
private void initPlayer() {
String url = Environment.getExternalStorageDirectory().getAbsolutePath() + "/English/test.avi";
PlayerView playerView = findViewById(R.id.playerView);
Log.e("exoPlayer", "url = " + url);
File myFile = new File(url);
String videoUrl= String.valueOf(Uri.fromFile(myFile));
TrackSelection.Factory adaptiveTrackSelectionFactory =
new AdaptiveTrackSelection.Factory(BANDWIDTH_METER);
exoPlayer = ExoPlayerFactory.newSimpleInstance(new DefaultRenderersFactory(this), new DefaultTrackSelector(), new DefaultLoadControl());
playerView.setPlayer(exoPlayer);
exoPlayer.addListener(new EventListener());
exoPlayer.setPlayWhenReady(playWhenReady);
exoPlayer.seekTo(currentWindow, playbackPosition);
Uri uri = Uri.parse(videoUrl);
MediaSource mediaSource = buildMediaSource(uri);
Log.e("exoPlayer", "mediaSource = " + mediaSource);
exoPlayer.prepare(mediaSource, true, false);
}
private MediaSource buildMediaSource(Uri uri) {
return new ExtractorMediaSource.Factory(
new DefaultDataSourceFactory(this,"Exoplayer")).
createMediaSource(uri);
}