我正在尝试仅将一个文件片段(例如,从00:00:30到00:00:40)从Chrome发送者投射到默认接收器。阅读LoadRequest
,MediaInfo
和QueueItem
的{{3}}文档,似乎我应该可以通过这些文档的某些组合来完成此操作。特别是,第一个排队的项目(加载CastSession#loadMedia
)需要LoadRequest#currentTime
设置为偏移量(上例中为30秒),MediaInfo#duration
设置为持续时间(10秒)例如),随后排队的项目会将QueueItem#startTime
和QueueItem#playbackDuration
设置为偏移和持续时间(分别)。
但是,这在实践中并没有发生。我可以确认接收器上的队列设置了这些字段,但无论我怎么做,我都无法获得正确的片段。当我如上所述添加第一个媒体项时,接收器只是从开始到结束播放音轨,既不考虑偏移也不考虑持续时间。由于LoadRequest#currentTime
和MediaInfo#duration
的组合有点奇怪,我尝试仅使用QueueItem
方法(使用autoplay = false
添加第一个媒体项,添加另一个队列项,删除第一个,然后开始播放队列)。在这种情况下,偏移量仍未得到遵守,持续时间最终(非常奇怪地)startTime
和playbackDuration
的总和(此外,任何随后排队的项目都会加载,然后“#34;完成播放而不开始播放”,我也无法理解。
其他人是否有使用此部分API的经验?我是否错误地阅读了文档,我所做的事情是不受支持的,还是我只是错误地将事情拼凑在一起?
答案 0 :(得分:0)
我不确定我是否理解为什么要尝试使用包含多个项目的队列。首先,持续时间字段不是您认为的;它不是您想要的播放持续时间,它是正在加载的媒体的总持续时间,无论您在何处开始或停止播放。事实上,在大多数情况下,你甚至不需要设置它;接收器在加载项目时获得媒体的总持续时间,至少在大多数情况下。 currentTime应该有效(如果不是,请在我们的SDK issue tracker上提交一个错误),或者,您可以加载媒体(关闭自动播放)和"寻找"到你想要的时间再玩。要在某一点停止,您需要监控播放位置,当它到达该点时,暂停播放。