Javascript 如何跨不同的html页面访问媒体录制器对象?

Javascript 如何跨不同的html页面访问媒体录制器对象?,javascript,html,session-storage,web-mediarecorder,Javascript,Html,Session Storage,Web Mediarecorder,我正在尝试跨不同的html页面访问MediaRecorder对象。这是因为我希望记录器根据加载的html页面/单击的按钮启动/停止录制。 目前,我尝试使用sessionStorage存储MediaRecorder对象,但sessionStorage似乎只接受字符串值?有没有办法使MediaRecorder成为全局变量,以便不同的html页面及其javascript文件可以访问它?您应该改用postMessage。postMessage用于字符串类型,对吗?我以前从未使用过它,但我不确定如何通过P

我正在尝试跨不同的html页面访问MediaRecorder对象。这是因为我希望记录器根据加载的html页面/单击的按钮启动/停止录制。
目前,我尝试使用sessionStorage存储MediaRecorder对象,但sessionStorage似乎只接受字符串值?有没有办法使MediaRecorder成为全局变量,以便不同的html页面及其javascript文件可以访问它?

您应该改用postMessage。postMessage用于字符串类型,对吗?我以前从未使用过它,但我不确定如何通过PostMessage触发mediaRecorder对象的启动和停止功能。为此,您必须提出一种协议。我通常做的是序列化JSON消息。您可以使用类似于
{event:'stopRecording'}
的内容。然后,将其序列化为JSON,并将其从控制器页面发送到录制页面。如果这是一个微不足道的问题,我深表歉意。我的后续问题是,如果我在从html页面a加载的脚本中设置MediaRecorder对象,然后切换到另一个html页面B。MediaRecorder对象是否不再存在?这是正确的。对不起,我以为你的意思是你打开了不同的窗口/选项卡。是的,如果不保持整个上下文的运行,就无法保持MediaRecorder的活力。