开发者社区> 问答> 正文

智能媒体管理中和这个问题,帮我看下我的思路是否正确,是否是还需要一些前提条件设置等?

智能媒体管理中和这个问题,帮我看下我的思路是否正确,是否是还需要一些前提条件设置等?我在使用新版文档处理服务,我想实现A、B用户在线查看同一个ppt,A用户在ppt上点击播放、暂停视频等操作,B用户也能同步操作播放,但是我在A用户的SlideMediaChanged事件中拿到了播放的Data,然后发给B用户,同时B用户在同一个slide页面去用instance.Application.ActivePresentation.SlideShowWindow.View.SetMediaObj去设置发现不起作用,是怎么回事呢?

展开
收起
三分钟热度的鱼 2023-12-13 20:13:24 38 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    您的思路是正确的,但是需要一些前提条件设置。首先,确保A、B用户都登录了同一个Office账户,并且已经安装了最新版本的Office软件。其次,在新版文档处理服务中,需要使用PresentationService接口来控制PPT的播放和暂停等操作。

    具体来说,您可以在A用户的SlideMediaChanged事件中获取到播放的Data后,将其发送给B用户。然后,在B用户的代码中,可以使用PresentationService接口来控制PPT的播放和暂停等操作。以下是示例代码:

    // A用户代码
    private void SlideMediaChanged(object sender, Microsoft.Office.Interop.PowerPoint.PpMediaChangeEvent ppMediaChangeEvent)
    {
        // 获取播放的Data
        object mediaObj = ppMediaChangeEvent.NewMedia;
        // 将Data发送给B用户
        SendDataToBUser(mediaObj);
    }
    
    // B用户代码
    private void SetMediaObj(object mediaObj)
    {
        // 获取当前PPT窗口
        Application pptApp = Globals.ThisAddIn.Application;
        Presentations presentations = pptApp.Presentations;
        _presentation = presentations[1]; // 假设要控制的PPT是第1个
        _slideShowWindow = _presentation.SlideShowWindows[1]; // 假设要控制的PPT是第1个窗口
        _slide = _presentation.Slides[1]; // 假设要控制的PPT是第1张幻灯片
        // 使用PresentationService接口来控制PPT的播放和暂停等操作
        _slideShowWindow.View.GotoSlide(1); // 跳转到第1张幻灯片
        _slide.Select(); // 选中该幻灯片
        _slideShowWindow.View.SetMediaObj(mediaObj); // 设置播放的Data
    }
    

    请注意,以上代码仅供参考,具体实现可能需要根据您的实际情况进行调整。

    2023-12-14 21:36:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载