Источник mediatimeline не загружается должным образом при использовании относительного пути - WPF - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь воспроизвести фоновую музыку c в приложении WPF, но музыка c не воспроизводится, когда я использую относительный путь.

Это не работает:

<Storyboard x:Key="PlaySoundStoryboard">
            <MediaTimeline Storyboard.TargetName="myMediaElement"  Source="pack://application:,,,/Music/music.mp3" />
</Storyboard>

Однако, когда я выбираю полный путь в качестве источника, он работает: (Musi c также воспроизводится, когда я не запускаю приложение, а просто открываю код в Visual Studio, поэтому, если у кого-то есть исправление для этого, пожалуйста, дайте мне знать)

<Storyboard x:Key="PlaySoundStoryboard">
            <MediaTimeline Storyboard.TargetName="myMediaElement"  Source="D:\Documenten\Application\View\Music\music.mp3" />
</Storyboard>

Я также попытался просто указать папку, как предлагается здесь: Установите для Mediaelement Source значение Relative URI в коде WPF

<Storyboard x:Key="PlaySoundStoryboard">
        <MediaTimeline Storyboard.TargetName="myMediaElement"  Source="Music/music.mp3" />

Относительный путь работает, когда я использую его для изображений, поэтому я немного запутался, это работает:

 <Button.Content>
            <Image Source="pack://application:,,,/Img/music-and-multimedia.png"/>
 </Button.Content>

Изменить: вот мой медиа-элемент

    <MediaElement x:Name="myMediaElement"  />
    <Button Name="playbutton" Grid.Column="0" Width="40" Height="40" Background="Transparent" BorderThickness="0" HorizontalAlignment="Left">
        <Button.Content>
            <Image Source="pack://application:,,,/Img/music-and-multimedia.png"/>
        </Button.Content>

    </Button>
    <Button Name="stopbutton" Grid.Column="1" Width="40" Height="40" Background="Transparent" BorderThickness="0" HorizontalAlignment="Left">
        <Button.Content>
            <Image Source="pack://application:,,,/Img/mute.png"/>
        </Button.Content>
    </Button>

А вот и моя Grid.Triggers:

     <Grid.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Storyboard="{StaticResource PlaySoundStoryboard}"  Name="theStoryboard"  />
        </EventTrigger>
        <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="playbutton">
            <ResumeStoryboard BeginStoryboardName="theStoryboard" />
        </EventTrigger>
        <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="stopbutton">
            <PauseStoryboard BeginStoryboardName="theStoryboard" />
        </EventTrigger>
    </Grid.Triggers>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...