【问题标题】:Relative Uri works for BitmapImage, but not for MediaPlayer?相对 Uri 适用于 BitmapImage,但不适用于 MediaPlayer?
【发布时间】:2011-02-07 05:03:29
【问题描述】:

这对你们来说很简单:

var uri = new Uri("pack://application:,,,/LiftExperiment;component/pics/outside/elevator.jpg");
imageBitmap = new BitmapImage();
imageBitmap.BeginInit();
imageBitmap.UriSource = uri;
imageBitmap.EndInit();
image.Source = imageBitmap;

=> 在 .jpg 上完美运行 构建操作:内容 复制到输出目录:总是复制

MediaPlayer mp = new MediaPlayer();
var uri = new Uri("pack://application:,,,/LiftExperiment;component/sounds/DialingTone.wav");
mp.Open(uri);
mp.Play();

=> 不适用于具有相同构建操作并复制到输出的 .wav。我在 /debug/ 文件夹中看到该文件..

MediaPlayer mp = new MediaPlayer();
var uri = new Uri(@"E:\projects\LiftExp\_solution\LiftExperiment\bin\Debug\sounds\DialingTone.wav");
mp.Open(uri);
mp.Play();

=> 完美运行..

那么,如何让声音与相对路径一起工作?为什么它不能以这种方式工作? 如果您需要更多代码或屏幕截图,请告诉我。

谢谢。

【问题讨论】:

    标签: wpf uri relative-path absolute-path


    【解决方案1】:

    pack://application URI 语法用于“嵌入”文件,确保媒体文件设置为该文件,或使用 pack://siteoforigin 处理“松散”文件(复制到 bin 目录)。

    MSDN link

    【讨论】:

    • 那为什么它适用于第一个带有 BitmapImage 的示例?
    • 嘿,它适用于: var uri = new Uri("pack://siteoforigin:,,,/sounds/DialingTone.wav");我不得不删除“/LiftExperiment;component”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2021-05-03
    • 2014-05-02
    • 1970-01-01
    相关资源
    最近更新 更多