在与演员表断开连接之前,是否可以从VideoCastManager
获取当前的播放媒体?
当用户手动断开连接时,我想保存当前媒体的最后进度。我使用VideoCastCosumer
方法onDisconnected()
但它抛出异常。不确定是什么类型的异常,因为我的日志只显示了这个:
System.err: at com.economist.newton.mobile.ui.activity.BaseCastActivity$1.onDisconnected (MyCastActivity.java:81)
此行包含onDisconnected()
方法中的以下行:
try {
if(castManager.getCurrentMediaPosition() > 30000){ // <-here error occurs
...
}
} catch (TransientNetworkDisconnectionException | NoConnectionException e) {
e.printStackTrace();
}
如果有任何帮助,castManager
中声明了onCreate()
变量:
castManager = VideoCastManager.getInstance();
播放随播广告库:com.google.android.libraries.cast.companionlibrary:ccl:2.8.4
答案 0 :(得分:1)
有几种方法可以做到这一点。我认为最容易的是拥有一个实现ProgressWatcher
的组件(来自CCL)。在该侦听器中,setProgress(int currentPosition, int duration)
将每秒调用一次,它将使用流的currentPosition作为其第一个参数。您可以缓存此值(如果您的设备断开连接,则无法更新),以便为您提供有关当前位置的实时信息。例如,如果您的活动实现了此接口:
public MyActivity extends AppCompatActivity implements ProgressWatcher {
private int mCurrentStreamPosition;
public onStart() {
....
mCastManager.addProgressWatcher(this);
....
}
public onStop() {
....
mCastManager.removeProgressWatcher(this);
....
}
public setProgress(int currentTime, int duration) {
mCurrentStreamPosition = currentTime;
}
public int getCurrentStreamPosition() {
return mCurrentStreamPosition;
}
....
}
因此,您可以随时调用getCurrentStreamPosition()(例如,您可以在onDisconnected()
中调用它)以获取最后/当前流位置。请注意,根据应用的结构,您可能决定在ProgressWatcher
/ onResume()
或onPause()
/ onCreate()
中注册/取消注册onDestroy()
。重要的是确保取消注册以避免泄漏内存。
答案 1 :(得分:0)
对于Castv3,您可以从onSessionEnding
覆盖SessionManagerListener
并获取mRemoteMediaClient.getMediaStatus().getStreamPosition()
答案 2 :(得分:0)
打电话给name = input("enter name:")
对我不起作用,但是import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
ax.plot(np.random.rand(10))
def onclick(event):
print('%s click: button=%d, x=%d, y=%d, xdata=%f, ydata=%f' %
('double' if event.dblclick else 'single', event.button,
event.x, event.y, event.xdata, event.ydata))
name = input("enter name:")
cid = fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()
fig.canvas.mpl_disconnect(cid)
很好。