스토리 보드 내에서 사운드 클립을 재생 (재생)하려고합니다. 사운드 파일 (예 : c : \ file \ location \ alarm.wave)에 절대 경로를 사용하면 정상적으로 작동합니다. 그러나, 만약 내가 상대 URI를 사용한다면, 그것은 일하는 사람이 아닙니다.오디오 리소스 파일이 MediaElement에서 재생되지 않습니다.
Resources라는 폴더에 내 alarm.wav가 있습니다. 내 프로젝트 루트에 있습니다. 나는 콘텐츠, 자원 및 임베디드 리소스에 대한 경보를 설정하는 작업을 시도했습니다. 또한 Resources.resx에 추가했습니다. /Resources/alarm.wav 및 Resources/alarm.wav와 pack : // application : ,,,/Capricorn2; component/Resources/alarm.wav와 같은 상대적 URI를 여러 번 사용해 보았습니다.
이러한 조합은 작동하지 않으므로 여기에서 명백한 것을 놓치고 있어야합니다 ... 어떤 생각입니까?
<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가 내 리소스에 추가했습니다 .resx, alarm.wav 파일의 빌드 동작은 Content이고 Copy to Output은 항상 Copy이고 Source = "Resources/alarm.wav"를 사용하고 있습니다. 내 질문은 여전히, 왜 내가 url xaml 코드에서 작동하지 않습니다 남아 ?? –