【问题标题】:Audio resource file won't play from MediaElement音频资源文件不会从 MediaElement 播放
【发布时间】:2014-06-18 16:35:38
【问题描述】:

我有一个 MediaElement 正在播放(尝试播放)故事板中的声音剪辑。当我使用声音文件的绝对路径(即 c:\file\location\alarm.wave)时,它工作正常。但是,如果我使用相对 uri,就不行了。

我的alarm.wav 位于名为Resources 的文件夹中,该文件夹位于我的项目根目录中。我尝试将alarm.wav 构建操作设置为内容、资源和嵌入式资源。我还在我的 Resources.resx 中添加了它。我尝试了一些相对 URI,例如 /Resources/alarm.wav 和 Resources/alarm.wav 和 pack://application:,,,/Capricorn2;component/Resources/alarm.wav。

这些组合都不起作用......所以我一定在这里遗漏了一些明显的东西......有什么想法吗?

<ListBox.ItemTemplate >
    <DataTemplate>
        <DataTemplate.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition  Binding="{Binding IsAlarming}" Value="True"/>
                    <Condition Binding="{Binding IsAudioAlarm}" Value="True"/>
                </MultiDataTrigger.Conditions>
                <MultiDataTrigger.EnterActions>
                    <BeginStoryboard x:Name="soundPlayer">
                        <Storyboard>
                            <MediaTimeline Source="/Capricorn2;component/Resources/alarm.wav" Storyboard.TargetName="alarmSound" RepeatBehavior="Forever"/>
                        </Storyboard>
                    </BeginStoryboard>
                </MultiDataTrigger.EnterActions>
                <MultiDataTrigger.ExitActions>
                    <RemoveStoryboard BeginStoryboardName="soundPlayer"/>
                </MultiDataTrigger.ExitActions>
            </MultiDataTrigger>
        </DataTemplate.Triggers>
        <Border >
            <Grid >
                <MediaElement x:Name="alarmSound"/>
            </Grid>
        </Border>
    </DataTemplate>
</ListBox.ItemTemplate>

【问题讨论】:

  • 好的,我现在有一个组合工作。我将alarm.wav 添加到resources.resx 中,alarm.wav 文件的构建操作是内容,复制到输出是始终复制,我正在使用Source="Resources/alarm.wav" 并且它正在工作。我的问题仍然存在,为什么我在 xaml 代码中的 uri 不起作用??

标签: wpf xaml


【解决方案1】:

相对 URI 前面不会有“/”。所以如果你的声音文件的绝对路径是

/ProjectName/Resources/alarm.wav

那么它的相对路径是

资源/alarm.wav

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多