如何将本地路径设置为媒体引擎 URL?

Posted

技术标签:

【中文标题】如何将本地路径设置为媒体引擎 URL?【英文标题】:How to set the local path into Media Engine URL? 【发布时间】:2018-02-07 20:55:29 【问题描述】:

我想使用下面的代码来设置MFMediaEngine Source URL。下面的方法,是从磁盘读取,并将其转换为 IMByteStream。现在我想知道如何在 Visual Win32(c++ 代码)项目中实现以下代码。是否可以 ?如果是这样,请提供一些方法或提示。注意:下面的代码是从通用 Windows 平台获取的示例代码。

      using namespace Windows::Storage;
      #include <Mfmediaengine.h>
      #include <wrl.h>
      Microsoft::WRL::ComPtr<IMFMediaEngine> m_mediaEngine;
      Microsoft::WRL::ComPtr<IMFMediaEngineEx> m_mediaEngineEx;

      void CPlayer::SetBytestream(IRandomAccessStream^ streamHandle)
        
            HRESULT hr = S_OK;
            ComPtr<IMFByteStream> spMFByteStream = nullptr;

            MEDIA::ThrowIfFailed(
                MFCreateMFByteStreamOnStreamEx((IUnknown*)streamHandle, &spMFByteStream)
                );

            MEDIA::ThrowIfFailed(
                m_mediaEngineEx->SetSourceFromByteStream(spMFByteStream.Get(), m_bstrURL)
                );

            return;
        

【问题讨论】:

【参考方案1】:

UWP 应用以沙盒方式运行,并且对文件系统的访问权限非常有限。在大多数情况下,他们只能直接访问他们的安装文件夹和他们的应用程序数据文件夹。所以你不能直接使用本地路径作为媒体引擎的 URL。

作为 Rob 的博客:Skip the path: stick to the StorageFile,您可以选择Files or folders picker 来获取文件和文件夹。然后,你可以通过IRandomAccessStreamread this StorageFile。

【讨论】:

以上是关于如何将本地路径设置为媒体引擎 URL?的主要内容,如果未能解决你的问题,请参考以下文章

如何将媒体文件的 URL 限制为 Django 中未经身份验证的用户?

django 中媒体文件的正确路径/url

默认媒体接收器无法加载本地文件

EasyPlayer流媒体视频播放器如何设置平铺?

django 媒体 url 标签

Android多媒体信息获取