gpt4 book ai didi

c# - 在 Metro 应用程序中打开媒体文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:41:00 25 4
gpt4 key购买 nike

它给我一个找不到文件的异常?内部 Assets 我有“beep.wav”但不工作。visual studio 2012\Projects\Myproject\Myproject\Assets

private async void beep()
{
MediaElement snd = new MediaElement();
StorageFolder folder = await Package.Current.InstalledLocation.GetFolderAsync("Assets");
StorageFile file = await folder.GetFileAsync("beep.wav");
var stream = await file.OpenAsync(FileAccessMode.Read);
snd.SetSource(stream, file.ContentType);
snd.Play();
}

上面的代码确实有效,我只需要手动将它添加到项目中....

最佳答案

当您运行您的应用程序时,Package.Current.InstalledLocation 将不是您的项目所在的目录 (visual studio 2012\Projects\Myproject\Myproject\Assets),而是目录应用程序部署到的位置(它可能类似于 visual studio 2012\Projects\Myproject\Myproject\bin\Debug\AppX\Assets)。

因此,如果您只是手动将 wav 文件复制到项目的 Assets 目录中,这是行不通的,因为您的应用程序将在部署位置查找它。

您注意到在将 wav 文件添加到项目后它可以正常工作,但将文件添加到项目中并不是使它正常工作的原因。如果您将文件添加到 Windows 应用商店项目,并在文件的属性 中将Build Action 设置为Content,则该文件将获得复制到您应用的部署位置。

您不必手动将此文件的生成操作设置为内容,因为 VS 会自动为某些文件类型(如 wav)执行此操作,因此文件已复制到部署位置。

关于c# - 在 Metro 应用程序中打开媒体文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com