如何将本地路径设置为媒体引擎 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 来获取文件和文件夹。然后,你可以通过IRandomAccessStream
read this StorageFile。
【讨论】:
以上是关于如何将本地路径设置为媒体引擎 URL?的主要内容,如果未能解决你的问题,请参考以下文章