课后练习
一、单项选择题
每题只有一个正确答案。
-
使用
Intent在 Activity 之间传递字符串数据时,用于写入数据的方法是( )。A.
getStringExtra()B.
putExtra()C.
startActivity()D.
finish() -
Media3 中,
PlayerView的主要作用是( )。A. 创建 ExoPlayer 对象
B. 准备待播放的媒体数据
C. 显示视频画面和播放控件
D. 释放播放器占用的资源
-
播放器状态为
Player.STATE_READY时,表示( )。A. 媒体已准备完成,具备播放条件
B. 媒体数据正在缓冲,尚不能继续播放
C. 媒体已播放到末尾
D. 播放器已经释放
-
调用播放器的
seekTo()方法,主要用于( )。A. 设置播放音量
B. 释放播放器资源
C. 暂停播放并保留当前位置
D. 跳转到指定的播放位置
-
Activity 从可见变为完全不可见时,通常会调用哪个生命周期方法?( )
A.
onCreate()B.
onStart()C.
onStop()D.
onDestroy() -
调用
ExoPlayer.release()的主要作用是( )。A. 暂停播放并保留播放器供后续使用
B. 释放播放器占用的资源
C. 更换媒体地址并自动播放
D. 将播放位置调整到起点
-
在加载媒体前检查播放地址是否为空,主要是为了( )。
A. 避免将空地址作为媒体来源传入播放器
B. 确认媒体服务器能够正常访问
C. 确认播放器支持该媒体格式
D. 提前完成媒体数据的下载
-
Player.Listener中,用于接收实际播放状态变化的回调是( )。A.
onIsPlayingChanged()B.
onPlaybackStateChanged()C.
onStopTrackingTouch()D.
onProgressChanged() -
Kotlin 中,对
Long类型的数值调用toInt(),其作用是( )。A. 将毫秒换算为秒
B. 将数值重置为 0
C. 将数值转换为
Int类型D. 将数值自动限制在进度条的最大值以内
-
释放播放器后,将保存该对象的可空引用设为
null,主要是为了( )。A. 重新创建一个播放器对象
B. 将播放器切换为播放结束状态
C. 自动保存最后的播放位置
D. 清空该引用,便于后续代码通过判空避免继续使用已释放的对象
二、拓展实践
-
为歌曲列表增加刷新功能,用户刷新后重新获取并显示歌曲数据。当列表没有歌曲时,显示清晰的空数据提示,并提供再次刷新的入口。
-
让视频播放页支持横竖屏切换,并分别调整视频画面、歌曲信息和播放控件的布局。切换后,画面比例应合理,文字和控件不能重叠,播放位置及播放、暂停状态应保持一致。
-
新增歌曲详情页,并在歌曲列表中设置进入详情页的入口。思考:用户需要查看哪些歌曲信息?页面应包含哪些界面部分?可以提供哪些操作?先绘制页面草图,再实现页面及主要功能。
三、参考答案
选择题答案
| 题号 | 答案 | 考查内容 |
|---|---|---|
| 1 | B | Intent 参数传递 |
| 2 | C | PlayerView 的作用 |
| 3 | A | STATE_READY 的含义 |
| 4 | D | seekTo() 跳转播放位置 |
| 5 | C | Activity 不可见时的生命周期回调 |
| 6 | B | 播放器资源释放 |
| 7 | A | 加载媒体前检查空地址 |
| 8 | A | 实际播放状态变化回调 |
| 9 | C | Long 转换为 Int |
| 10 | D | 释放播放器后清空引用 |
拓展实践评价要点
-
刷新后能够显示最新数据;列表为空时提示清晰,用户仍可再次刷新;刷新失败与没有数据的提示能够区分。
-
横竖屏布局均能完整显示视频和主要控件,画面比例合理;切换后播放位置和状态正确,播放控制及进度拖动仍可正常使用。
-
页面草图能体现信息分区和操作入口;详情页显示所选歌曲的信息,布局清晰,主要功能可用,并能返回歌曲列表。