Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YDL-Component-Medical
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨凯
YDL-Component-Medical
Commits
87eb5150
Commit
87eb5150
authored
Dec 23, 2019
by
严久程
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
课程切换音视频播放问题修复
parent
db858acd
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
110 additions
and
46 deletions
+110
-46
CoursePlayActivity.kt
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayActivity.kt
+63
-34
CoursePlayItemViewVideo.kt
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayItemViewVideo.kt
+31
-11
activity_course_play.xml
m-course/src/main/res/layout/activity_course_play.xml
+16
-1
No files found.
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayActivity.kt
View file @
87eb5150
...
...
@@ -67,7 +67,8 @@ class CoursePlayActivity : BaseActivity() {
/*******************播放器模块*******************/
//音视频模块
var
play_view
:
PlayViewInterface
?
=
null
var
playAudioView
:
PlayViewInterface
?
=
null
var
playVideoView
:
PlayViewInterface
?
=
null
//当前播放模式 0音频播放 1视频播放
var
play_type
=
0
...
...
@@ -241,22 +242,25 @@ class CoursePlayActivity : BaseActivity() {
0
)
if
(
play_type
==
1
)
{
//暂停状态 开始播放
(
play_view
as
CoursePlayItemViewVideo
)
?.
play
(
position
)
index
=
position
if
(
playList
[
index
].
mediaType
==
2
)
{
play_type
=
1
(
playVideoView
as
CoursePlayItemViewVideo
)
?.
play
(
position
)
}
if
(
play_type
==
0
)
{
if
(
playList
[
index
].
mediaType
==
1
)
{
play_type
=
0
if
(
RxNetTool
.
isWifi
(
this
@CoursePlayActivity
))
{
(
play
_v
iew
as
CoursePlayItemViewAudio
).
playView
!!
.
play
(
(
play
AudioV
iew
as
CoursePlayItemViewAudio
).
playView
!!
.
play
(
position
)
}
else
{
if
((
play
_v
iew
as
CoursePlayItemViewAudio
).
hasEnsureNetStatus
)
{
(
play
_v
iew
as
CoursePlayItemViewAudio
).
playView
!!
.
play
(
if
((
play
AudioV
iew
as
CoursePlayItemViewAudio
).
hasEnsureNetStatus
)
{
(
play
AudioV
iew
as
CoursePlayItemViewAudio
).
playView
!!
.
play
(
position
)
}
else
{
(
play
_v
iew
as
CoursePlayItemViewAudio
).
setData
(
(
play
AudioV
iew
as
CoursePlayItemViewAudio
).
setData
(
position
,
playList
,
courPlayBean
!!
.
courseExtra
,
...
...
@@ -265,7 +269,6 @@ class CoursePlayActivity : BaseActivity() {
}
}
}
index
=
position
adapter
?.
notifyDataSetChanged
()
}
}
...
...
@@ -337,10 +340,6 @@ class CoursePlayActivity : BaseActivity() {
)
{
receiverPlayUrl
=
AudioPlayer
.
get
().
playMusic
?.
path
}
// if (YDLMusicHelper.isCoursePlaying() && TextUtils.isEmpty(receiverPlayUrl)) {
// receiverPlayUrl = YDLMusicHelper.getCurrentData()?.url
// }
}
catch
(
e
:
Exception
)
{
}
...
...
@@ -426,24 +425,35 @@ class CoursePlayActivity : BaseActivity() {
}
}
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
if
(
play_type
==
1
)
{
//视频
play_view
=
CoursePlayItemViewVideo
.
create
(
this
,
play_type
)
(
play_view
as
CoursePlayItemViewVideo
).
hasEnsureNetStatus
=
isCancelNetCheck
frame_play
.
addView
(
play_view
as
CoursePlayItemViewVideo
)
}
else
{
//音频
play_view
=
CoursePlayItemViewAudio
.
create
(
this
,
play_type
)
(
play_view
as
CoursePlayItemViewAudio
).
hasEnsureNetStatus
=
isCancelNetCheck
frame_play
.
addView
(
play_view
as
CoursePlayItemViewAudio
)
}
// if (play_type == 1) {//视频
// playVideoView = CoursePlayItemViewVideo.create(this, play_type)
// (playVideoView as CoursePlayItemViewVideo).hasEnsureNetStatus = isCancelNetCheck
// frame_video_play.addView(playVideoView as CoursePlayItemViewVideo)
// } else {//音频
// playAudioView = CoursePlayItemViewAudio.create(this, play_type)
// (playAudioView as CoursePlayItemViewAudio).hasEnsureNetStatus = isCancelNetCheck
// frame_audio_play.addView(playAudioView as CoursePlayItemViewVideo)
// }
//视频
playVideoView
=
CoursePlayItemViewVideo
.
create
(
this
,
play_type
)
(
playVideoView
as
CoursePlayItemViewVideo
).
hasEnsureNetStatus
=
isCancelNetCheck
frame_video_play
.
addView
(
playVideoView
as
CoursePlayItemViewVideo
)
//音频
playAudioView
=
CoursePlayItemViewAudio
.
create
(
this
,
play_type
)
(
playAudioView
as
CoursePlayItemViewAudio
).
hasEnsureNetStatus
=
isCancelNetCheck
frame_audio_play
.
addView
(
playAudioView
as
CoursePlayItemViewVideo
)
if
(
play_type
==
0
)
{
play_view
?.
setData
(
index
,
playList
,
bean
.
courseExtra
,
from
)
playAudioView
?.
setData
(
index
,
playList
,
bean
.
courseExtra
,
from
)
frame_audio_play
.
visibility
=
View
.
VISIBLE
}
else
{
play_view
?.
setData
(
index
,
playList
,
bean
.
courseExtra
,
from
)
playVideoView
?.
setData
(
index
,
playList
,
bean
.
courseExtra
,
from
)
frame_audio_play
.
visibility
=
View
.
GONE
}
if
(
videoView
!=
null
&&
play_type
==
1
&&
fullScreen
==
1
)
{
...
...
@@ -474,13 +484,13 @@ class CoursePlayActivity : BaseActivity() {
//设置播放列表数据
private
fun
setPlayList
(
bean
:
CourseMediaDetailBean
)
{
if
(
bean
.
voiceSample
.
courseMedia
!=
null
&&
bean
.
voiceSample
.
courseMedia
.
isNotEmpty
())
{
if
(
bean
.
voiceSample
.
courseMedia
.
isNotEmpty
())
{
for
(
voiceSampleData
in
bean
.
voiceSample
.
courseMedia
)
{
voiceSampleData
.
isDemo
=
true
playList
.
add
(
voiceSampleData
)
}
}
if
(
bean
.
voiceWhole
.
courseMedia
!=
null
&&
bean
.
voiceWhole
.
courseMedia
.
isNotEmpty
())
{
if
(
bean
.
voiceWhole
.
courseMedia
.
isNotEmpty
())
{
for
(
voiceCourseData
in
bean
.
voiceWhole
.
courseMedia
)
{
playList
.
add
(
voiceCourseData
)
}
...
...
@@ -491,6 +501,20 @@ class CoursePlayActivity : BaseActivity() {
fun
updatePlayingListStatus
(
index
:
Int
)
{
if
(
index
<
playList
.
size
&&
this
.
index
!=
index
)
{
if
(
playList
[
index
].
mediaType
==
1
)
{
frame_video_play
.
visibility
=
View
.
GONE
frame_audio_play
.
visibility
=
View
.
VISIBLE
(
playAudioView
as
CoursePlayItemViewAudio
).
playView
?.
play
(
index
)
}
if
(
playList
[
index
].
mediaType
==
2
)
{
frame_video_play
.
visibility
=
View
.
VISIBLE
frame_audio_play
.
visibility
=
View
.
GONE
(
playVideoView
as
CoursePlayItemViewVideo
)
?.
play
(
index
)
}
this
.
index
=
index
adapter
?.
notifyDataSetChanged
()
}
...
...
@@ -573,18 +597,21 @@ class CoursePlayActivity : BaseActivity() {
private
fun
toTrend
(
share
:
ShareData
)
{
var
url
=
if
(
TextUtils
.
isEmpty
(
share
.
url
))
share
.
share_url
else
share
.
url
CourseIn
.
getDynamicService
().
publishArticleToTrend
(
this
@CoursePlayActivity
,
url
!!
,
share
.
cover
!!
,
share
.
title
!!
)
CourseIn
.
getDynamicService
()
.
publishArticleToTrend
(
this
@CoursePlayActivity
,
url
!!
,
share
.
cover
!!
,
share
.
title
!!
)
}
override
fun
onPause
()
{
super
.
onPause
()
videoView
?.
onPause
()
play_view
?.
onPause
()
playVideoView
?.
onPause
()
playAudioView
?.
onPause
()
}
override
fun
onResume
()
{
super
.
onResume
()
play_view
?.
onResume
()
playVideoView
?.
onResume
()
playAudioView
?.
onResume
()
if
(
PlayerFloatHelper
.
isShow
(
this
))
{
PlayerFloatHelper
.
removeView
(
this
)
...
...
@@ -653,7 +680,7 @@ class CoursePlayActivity : BaseActivity() {
VideoFloatHelper
.
setVideoInfo
(
course_id
.
toString
(),
(
play
_v
iew
as
CoursePlayItemViewVideo
).
videoUrl
!!
,
(
play
VideoV
iew
as
CoursePlayItemViewVideo
).
videoUrl
!!
,
true
)
VideoFloatHelper
.
defaultShowPattern
=
ShowPattern
.
FOREGROUND
...
...
@@ -691,7 +718,9 @@ class CoursePlayActivity : BaseActivity() {
override
fun
onDestroy
()
{
super
.
onDestroy
()
videoView
?.
onDestroy
()
play_view
?.
onDestroy
()
play_view
=
null
playAudioView
?.
onDestroy
()
playVideoView
?.
onDestroy
()
playAudioView
=
null
playVideoView
=
null
}
}
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayItemViewVideo.kt
View file @
87eb5150
...
...
@@ -61,7 +61,10 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
initView
()
wakeLock
=
(
activity
!!
.
getSystemService
(
Context
.
POWER_SERVICE
)
as
PowerManager
)
.
newWakeLock
(
PowerManager
.
SCREEN_BRIGHT_WAKE_LOCK
or
PowerManager
.
ON_AFTER_RELEASE
,
"CoursePlayItemViewVideo"
)
.
newWakeLock
(
PowerManager
.
SCREEN_BRIGHT_WAKE_LOCK
or
PowerManager
.
ON_AFTER_RELEASE
,
"CoursePlayItemViewVideo"
)
}
override
fun
onNewIntent
()
{
...
...
@@ -153,7 +156,7 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
}
}
if
(
canPlay
)
{
PlayerFloatHelper
.
playingType
=
PlayTypeEnum
.
PLAY_TYPE_COURSE
PlayerFloatHelper
.
playingType
=
PlayTypeEnum
.
PLAY_TYPE_COURSE
var
url
=
playList
[
index
].
url
...
...
@@ -176,13 +179,16 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
override
fun
onInfo
(
mp
:
IMediaPlayer
,
what
:
Int
,
extra
:
Int
):
Boolean
{
LogUtil
.
e
(
"课程播放--状态-$what"
)
if
(
what
==
PlayStateParams
.
STATE_PAUSED
)
{
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
rl_play_pause_layout
).
visibility
=
View
.
VISIBLE
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
rl_play_pause_layout
)
.
visibility
=
View
.
VISIBLE
}
else
{
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
rl_play_pause_layout
).
visibility
=
View
.
GONE
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
rl_play_pause_layout
)
.
visibility
=
View
.
GONE
}
if
(
what
==
PlayStateParams
.
STATE_PLAYING
)
{
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
app_video_loading
).
visibility
=
View
.
GONE
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
app_video_loading
)
.
visibility
=
View
.
GONE
}
if
(
what
==
PlayStateParams
.
MEDIA_INFO_BUFFERING_END
||
what
==
PlayStateParams
.
MEDIA_INFO_AUDIO_RENDERING_START
...
...
@@ -191,17 +197,26 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
||
what
==
IMediaPlayer
.
MEDIA_INFO_VIDEO_SEEK_RENDERING_START
)
{
activity
?.
isVideoPlay
=
true
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
ll_bg
).
visibility
=
View
.
GONE
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
ll_loading
).
visibility
=
View
.
GONE
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
app_video_loading
).
visibility
=
View
.
GONE
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
ll_bg
)
.
visibility
=
View
.
GONE
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
ll_loading
)
.
visibility
=
View
.
GONE
this
@CoursePlayItemViewVideo
.
findViewById
<
View
>(
R
.
id
.
app_video_loading
)
.
visibility
=
View
.
GONE
}
if
(
what
==
PlayStateParams
.
STATE_COMPLETED
)
{
isVideoPlaying
=
false
PlayProgressUtil
.
saveProgress
(
this
@CoursePlayItemViewVideo
.
activity
,
videoUrl
,
0
)
PlayProgressUtil
.
saveProgress
(
this
@CoursePlayItemViewVideo
.
activity
,
videoUrl
,
0
)
if
(
playList
.
size
-
1
>
this
@CoursePlayItemViewVideo
.
index
)
{
//播放下一曲
play
(
this
@CoursePlayItemViewVideo
.
index
+
1
)
// play(this@CoursePlayItemViewVideo.index + 1)
this
@CoursePlayItemViewVideo
.
index
=
this
@CoursePlayItemViewVideo
.
index
+
1
activity
!!
.
updatePlayingListStatus
(
this
@CoursePlayItemViewVideo
.
index
)
}
}
else
{
...
...
@@ -234,7 +249,12 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
/**
* 设置显示数据
*/
override
fun
setData
(
index
:
Int
,
list
:
ArrayList
<
CourseMediaBean
>,
courseExtra
:
CourseExtraBean
,
from
:
Int
)
{
override
fun
setData
(
index
:
Int
,
list
:
ArrayList
<
CourseMediaBean
>,
courseExtra
:
CourseExtraBean
,
from
:
Int
)
{
if
(
list
.
isEmpty
())
return
playList
.
clear
()
...
...
m-course/src/main/res/layout/activity_course_play.xml
View file @
87eb5150
...
...
@@ -37,7 +37,22 @@
android:id=
"@+id/frame_play"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/transparent"
/>
android:background=
"@color/transparent"
>
<FrameLayout
android:id=
"@+id/frame_audio_play"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/transparent"
android:visibility=
"gone"
/>
<FrameLayout
android:id=
"@+id/frame_video_play"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/transparent"
android:visibility=
"gone"
/>
</FrameLayout>
<RelativeLayout
android:id=
"@+id/title_bar_layout"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment