반응형
Android Studio(기능) ExoPlayer이용 json 파싱 및 영상 보여주기1-1에서 여기까지 했다.
추가로 플레이 버튼이 영상 가운데에 오도록하고, 화면 밖으로 영상이 나갔을 때 재생이 안되게하고 전체화면도 해보자.
<최종 실행 화면>
플레이 버튼이 영상 가운데에 오도록 하는 것은 레이아웃만 추가하면 알아서 적용이 된다.
exo_player_control_view.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent" android:layout_height="match_parent">
<ImageButton
android:id="@id/exo_play"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#cccc0000"
android:layout_centerInParent="true"
<ImageButton
android:id="@id/exo_pause"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#cccc0000"
android:layout_centerInParent="true"
</RelativeLayout>
|
화면 밖으로 영상이 나갔을 때 재생이 안되게 하겠다.
그리고 추가로 전체 화면 모드로 동영상을 재생을 해보자. 근데 따로 지원해주는 기능이 없어서..
버튼을 눌렀을 때, 새로운 액티비티를 띄워 화면 전체에 PlayView를 하겠다.
어댑터에서 목록하나하나 화면을 보여주므로 onclick은 안되고 id로 리스너를 달아줘야 한다.
activity_full_screen.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?xml version="1.0" encoding="utf-8"?>
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".FullScreenActivity">
android:id="@+id/pv"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
|
s |
full 버튼을 눌렀을 시 새로운 액티비티로 가고,
지금 재생중인 영상을 이어서 보여주기 위해 getCurrentPosition 값도 보내줬다.
(안그러면 전체화면시 영상이 처음부터 다시 나온다.)
이제 새로 만든 액티비티에 코드 작성만 하면 끝난다.
FullScreenActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
package com.lcw.ex90exoplayerjson;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
public class FullScreenActivity extends AppCompatActivity {
PlayerView pv;
SimpleExoPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_full_screen);
pv= findViewById(R.id.pv);
player= ExoPlayerFactory.newSimpleInstance(this, new DefaultTrackSelector());
pv.setPlayer(player);
Intent intent=getIntent();
String videoUrl= intent.getStringExtra("videoUrl");
long currentPos= intent.getLongExtra("currentPos",0);
//미디어 소스 객체 생성
DataSource.Factory factory= new DefaultDataSourceFactory(this, "Ex90Exoplayer");
ProgressiveMediaSource.Factory mediaFactory= new ProgressiveMediaSource.Factory(factory);
ProgressiveMediaSource mediaSource= mediaFactory.createMediaSource(Uri.parse(videoUrl));
player.prepare(mediaSource);
player.setPlayWhenReady(true);
}
}
|
<최종 실행 화면>
반응형
'안드로이드 웹앱 콘테츠 개발자 양성(국비지원) > Android 기능' 카테고리의 다른 글
Android Studio(기능) ExoPlayer이용 json 파싱 및 영상 보여주기1-1 (0) | 2019.11.06 |
---|---|
Android Studio(기능) 비디오 보여주기VideoView, ExoPlayer (2) | 2019.11.05 |
Android Studio(기능) Bluetooth (0) | 2019.10.16 |
Android Studio(기능) 장면 전환 Transition (0) | 2019.10.15 |
Android Studio(기능) 첫페이지 인트로 효과 주기(로고,제목 애니메이션 효과) (0) | 2019.10.15 |
댓글