0

对于 Windows 8 应用程序,在 C#/Xaml 中,我想使用 Launcher.LaunchFileAsync 在计算机上使用媒体播放器启动视频。

我有一个来自 url 的视频文件,我正在使用以下代码:

     var uri = new Uri(myUrl,UriKind.RelativeOrAbsolute);

            var file = await StorageFile.CreateStreamedFileFromUriAsync("aaa", uri, RandomAccessStreamReference.CreateFromUri(uri));

            if (file != null)
            {
                // Launch the retrieved file
                var success = await Windows.System.Launcher.LaunchFileAsync(file);

                if (success)
                {
                    // File launched
                }
                else
                {
                    // File launch failed
                }
            }
            else
            {
                // Could not find file
            }

这实际上是 LaunchFileAsync 文档中的示例代码。这对我来说似乎很好,但成功总是假的。你知道为什么吗?是否可以将 LaunchFileAsync 用于 url 中的视频?还有另一种方法吗?

4

2 回答 2

1

我遇到了同样的问题,我试图从特定文件路径位置播放 .mp3 文件。

我无法使用StorageFile.CreateStreamedFileFromUriAsync打开文件。我收到无效的参数异常或未经授权的访问错误。

尝试替换更改行:

            String myUrl = @"ms-appx:///sources/sounds/ffd19.mp3";          
            var file = await StorageFile.GetFileFromApplicationUriAsync(uri);

唯一的缺点是该文件必须注册为项目的资源。

在我的情况下,.mp3 位于解决方案资源管理器中的源/声音/文件夹中,与应用程序文件位于同一文件夹中。

于 2012-10-14T22:26:51.733 回答
0

我对你的代码所说的感到困惑。

var file = await StorageFile.CreateStreamedFileFromUriAsync("aaa", uri, RandomAccessStreamReference.CreateFromUri(uri));

“文件”获取函数的返回,但函数返回的是一个 StorageFile 对象,您可以参考 Window.Storage.StorageFile。

我认为这可能是问题所在,但我不知道如何解决。

此外,函数“LaunchFileAsync()”对它可以启动的文件类型有限制,这也可能导致这个问题。

对不起我没有回答的建议。就这样。

于 2012-09-26T03:50:42.360 回答