|
|
憨厚的移动电源 · python之第三方库pycurl库:Pyc ...· 1 年前 · |
|
|
失恋的猕猴桃 · elasticsearch基本操作之--使用 ...· 2 年前 · |
|
|
踏实的毛衣 · python读取xlsx生成pdf-掘金· 2 年前 · |
|
|
大方的沙滩裤 · python推荐系统实现(矩阵分解来协同过滤 ...· 2 年前 · |
我试图使用
ExoPlayer
,而不是
MediaPlayer
,我似乎无法理解.
MediaPlayer
有
.start()
/
.pause()
命令..。我只需要
seekTo(1287)
它就会自动开始播放..。
我如何在
ExoPlayer
中做到这一点?我试过做
seekTo(1287)
,但它没有在.我也在那之后添加了
.setPlayWhenReady(true)
,但仍然没有运气.
我可以
.stop()
..。但我不能让它在那之后再开始演奏,除非我再次
.prepare()
.但我觉得我不应该在每次暂停和播放之间都这么做。
我使用我自己的控件和方法来反对
MediaController
,就像在ExoPlayer演示中.我不太明白控制是如何实现的.
有什么建议吗?
编辑:
好吧,我想出了暂停和开始..。
.setPlayWhenReady(true) // start
.setPlayWhenReady(false) // pause
但我在追踪上还是有问题..。
.seekTo
间歇工作..。有时起作用..。但其他时候我会犯这样的错误:
E/AudioTrack: AudioTrack::set : Exit
(它只进入缓冲状态.还没准备好..。
PlayerControl
在
ExoPlayer
源代码中完全按照您的要求执行:
公共类PlayerControl实现MediaPlayerControl {私有最终ExoPlayer exoPlayer;公共PlayerControl(ExoPlayer exoPlayer) { this.exoPlayer = exoPlayer;}@覆盖公共布尔canPause() {返回真;}@覆盖公共布尔值canSeekBackward() {返回真;}}@覆盖公共布尔值canSeekForward() {返回真;}@覆盖公共int getAudioSessionId() {抛新UnsupportedOperationException();}@覆盖公共int getBufferPercentage() {返回exoPlayer.getBufferedPercentage();}@覆盖公共int getCurrentPosition() {返回exoPlayer.getDuration() == ExoPlayer.UNKNOWN_TIME ?0:( int ) exoPlayer.getCurrentPosition();}@覆盖公共int getDuration() {返回exoPlayer.getDuration() == ExoPlayer.UNKNOWN_TIME ?0:(int) exoPlayer.getDuration();}@覆盖公共布尔值isPlaying() {返回exoPlayer.getPlayWhenReady();}@覆盖公共无效启动(){exoPlayer.setPlayWhenReady(真);}@覆盖公共无效暂停(){exoPlayer.setPlayWhenReady(假);}@覆盖公共无效seekTo(int timeMillis) { long seekPosition = exoPlayer.getDuration() == ExoPlayer.UNKNOWN_TIME ?0: Math.min(Math.max(0,timeMillis),getDuration());exoPlayer.seekTo(seekPosition);}
如果在搜索操作中遇到了奇怪的行为,这可能是由于特定的流/文件类型造成的。我可以建议您看一看 基本实现 of ExoPlayer,并最终报告任何 问题 上的Github。
下面是 示例代码 为Exoplayer 2所做的工作:
player.setPlayWhenReady(true);
如果播放机已经处于就绪状态,则可以使用此方法暂停并恢复播放。
为了寻找,他们用
布尔haveStartPosition = startWindow != C.INDEX_UNSET;if (haveStartPosition) { player.seekTo(startWindow,startPosition);} player.prepare(mediaSource,!haveStartPosition,false);
因此,您似乎需要在
prepare
之后使用
seekTo
。
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券
|
|
憨厚的移动电源 · python之第三方库pycurl库:PycURl是一个C语言写的libcurl的python绑定库。libcurl 是一个自由的,并且容易使用的用在客户端的 URL 传输库。 - 习久性成 - 博客 1 年前 |
|
|
踏实的毛衣 · python读取xlsx生成pdf-掘金 2 年前 |