Benutzer mit den meisten Antworten
Soundwiedergabe auf einer Windows 10 app über visual basic

Frage
-
Hallo zusammen,
Ich hänge daran jetzt schon eine ganze zeit und habe dazu im Internet auch noch nichts gefunden, deswegen wollte ich hier mal fragen.
Zuerst: Ich bin blutiger Anfänger, habe zwar schon mal was über Windows Forms programmiert (auch vb), aber das ist ja etwas ganz anderes.
Ich habe eine Windows universelle App erstellt (Visual Basic) und will, dass wenn man auf einen Knopf drückt, ein (wav) Sound abgespielt wird.
Ich habe mir das vom Aufbau etwa so vorgestellt:
Public NotInheritable Class MainPage Inherits Page Private Sub button1_Click(sender As Object, e As RoutedEventArgs) Handles button.Click [Code zum Abspielen der Sounddatei] End Sub End Class
Die Sounddatei soll sich im Anwendungsverzeichnis befinden, sie wird also mit installiert.
Ich hoffe mir kann einer helfen ;)
Schonmal danke im Vorraus,
Emil Fischer
Antworten
-
Hallo Emil
dafür brauchst Du zuerst auf der MainPage.xaml ein MediaElement und ein Button
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid.RowDefinitions> <RowDefinition Height="40"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Button x:Name="myPlayButton" Content="Play" Click="myPlayButton_Click" /> <MediaElement x:Name="myMediaElement" Grid.Row="1" /> </Grid>
zudem brachst Du noch die Click Methode
Private Sub myPlayButton_Click(sender As Object, e As RoutedEventArgs) Dim assets = Await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets") Dim sound = Await assets.GetFileAsync("Sound.wmv") Dim stream = Await sound.OpenReadAsync() myMediaElement.SetSource(stream, sound.FileType) myMediaElement.Play() End Sub
Du findest in der MS Doku weiter Infos zum MediaElement
Gruß, Thomas
Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!
- Als Antwort markiert Emil Fischer Dienstag, 20. Juni 2017 18:24
Alle Antworten
-
Hallo Emil
dafür brauchst Du zuerst auf der MainPage.xaml ein MediaElement und ein Button
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid.RowDefinitions> <RowDefinition Height="40"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Button x:Name="myPlayButton" Content="Play" Click="myPlayButton_Click" /> <MediaElement x:Name="myMediaElement" Grid.Row="1" /> </Grid>
zudem brachst Du noch die Click Methode
Private Sub myPlayButton_Click(sender As Object, e As RoutedEventArgs) Dim assets = Await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets") Dim sound = Await assets.GetFileAsync("Sound.wmv") Dim stream = Await sound.OpenReadAsync() myMediaElement.SetSource(stream, sound.FileType) myMediaElement.Play() End Sub
Du findest in der MS Doku weiter Infos zum MediaElement
Gruß, Thomas
Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!
- Als Antwort markiert Emil Fischer Dienstag, 20. Juni 2017 18:24
-
Hallo Thomas,
Danke für deine Schnelle und hilfreiche Antwort!
Ich habe ein bisschen probiert und einen noch einfacheren Weg gefunden (mithilfe des Links):
Zuerst natürlich ein Mediaelement erstellen, diesem dann eine Datei zuordnen und den Haken bei Autostart entfernen.
Das ist dann der Text in MainPage.xaml.vb:
Private Async Function button_ClickAsync(sender As Object, e As RoutedEventArgs) As Task Handles button.Click mediaElement1.Play() End Function
Grüße, Emil
-
Der unterschied ist aber das man mit meinem Code zur Laufzeit die Datei ändern könnte
Gruß, Thomas
Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!