Pada windows phone, dasarnya adalah Silverlight, sehingga satu cara untuk memainkan audio dan video menggunakan element Media Element. namun menggunakan element tersebut untuk mengakses suara masih terlalu berat. Ketika kita bermain dan berhenti suara pendek, kita bisa memanfaatkan dukungan xna untuk bermain efek suara. Class pada xna disebut SoundEffect yang terdapat pada Microsoft.Xna.Framework. untuk menggunakan library ini dengan cara menambahkan referensi Microsoft.Xna.Framework pada project.
Code dibawah dalam penggunaan fitur ini : (pada project sample pada post ini, menggunakan resource sound amb.wav).
public MainPage()
{
InitializeComponent();
//mendefinisikan resource yang kita gunakan
StreamResourceInfo info = Application.GetResourceStream(
new Uri("source/amb.wav", UriKind.Relative));
amb = SoundEffect.FromStream(info.Stream);
CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
PhoneApplicationService.Current.UserIdleDetectionMode =
IdleDetectionMode.Disabled;
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
PhoneApplicationService.Current.UserIdleDetectionMode =
IdleDetectionMode.Enabled;
}
void CompositionTarget_Rendering(object sender, EventArgs e)
{
Microsoft.Xna.Framework.FrameworkDispatcher.Update();
}
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
amb.Play();
}
Saat pengguna ingin memaikan sound effect ambulance (amb.wav), bisa langsung kaya melakukan “tap” pada layar device tersebut. Sehingga code sample pada desainnya (xaml) :
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Margin="12,17,12,49" Grid.RowSpan="2"
MouseLeftButtonDown="Grid_MouseLeftButtonDown">
<Image Source="source/384.png" Stretch="None" Margin="0,-117,0,0" />
</Grid>
Hasilnya : Source code dapat didownload disini.
