控制android中视频的播放速度
我正在使用 VideoView 播放保存在 res/raw 中的视频文件。我找不到控制视频播放速度的方法。基本上我想在移动滚动条时减少和增加播放。有没有解决办法来实现这一点?
I am using a VideoView to play a video file kept in res/raw. I couldnt find a way to control the playback speed of the video. Basically i want to reduce and increase the playback while moving a scroll bar. Is there any work around for implementing this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你可以使用它,但它适用于 api 23 及更高版本
you can use this but it works on api 23 and above
不,您不能仅使用
VideoView
来更改播放速率。VideoView
和MediaPlayer
仅提供有限的媒体功能。您必须使用一些第三方库,例如PVPlayer,并自己实现。
这也是 Android 上优秀的媒体播放器如此有价值的原因:)
No, you cannot change the playback rate by simply using
VideoView
.VideoView
andMediaPlayer
only provide limited media functions.You have to use some third party library, e.g., PVPlayer, and implement that yourself.
That's also why good media players on Android are so valuable:)
我想说的是 Mk Kamal 的解决方案有一个意想不到的副作用:调用
setPlaybackParamsOnPreparedListener
中的 > 将强制VideoView
重复播放最新播放的视频。我不知道这是一个错误还是一个功能,但我找到了一种方法来避免这种行为:
仅当播放器已启动时才会发送
MEDIA_INFO_VIDEO_RENDERING_START
。我想强调的是
getPlaybackParams
被注释为@NonNull
,因此不需要创建新的PlaybackParams
对象。I want to say than Mk Kamal's solution have an unexpected side effect: calling
setPlaybackParams
inOnPreparedListener
will forceVideoView
to repeat the latest played video when the app was returned from the background.I don't know is it a bug or a feature, but I found a way to avoid such behavior:
MEDIA_INFO_VIDEO_RENDERING_START
will be sent only if the palyer was already started.And I want to emphasize that
getPlaybackParams
is annotated as@NonNull
, so it's not necessary to create a newPlaybackParams
object.Kotlin 变体,API 高于 23
Kotlin variant, API above 23
DicePlayer 在我的 Asus Transformer 上完美运行。
它有一个速度控制屏幕显示。
我不确定 res/raw 是什么。
DicePlayer works perfectly on my Asus Transformer.
It has a speed control onscreen display.
I'm not sure what
res/raw
is though.