Wiki


Wiki Table of Contents

Page Details

First published by:
Last revision by:
1 person found this article useful.

100% of people found this useful
Silverlight Tip of the Day #22 – How to add Sound Effects, Music and Video to your Silverlight App.

Filed under: [Edit Tags]

Không một game nào là hoàn toàn không có một hiệu ứng âm thanh hay âm thanh  tuyệt vời để thu hút người chơi! Bài học này sẽ cho bạn biết làm cách nào để tạo được cả hai thứ đó với một đoạn code rất ít.

Bản thử: (Tạm thời tớ không thể hiển thị nó lên đây được, đợi tớ ngày mai nhé, đây là đường dẫn, bạn có thể copy và dán vào thanh address của bạn để xem, tuyệt lém)

http://silverlight.services.live.com/invoke/66033/Sound%20Demo/iframe.html

(Yêu cầu phải có Silverlight 2 RTW để xem được).

Silverlight hỗ trợ các định dạng về âm thanh, nhạc và video sau:

Video

  1. WMV1-3 (Windows Media Video 7, 8 & 9 respectively).
  2. WMVA (Windows Media Video Advanced Profile, non VC-1).
  3. WMVC1 (Windows Media Video Advanced Profile, VC-1).

Audio

  1. MP3 – ISO/MPEG Layer-3
    • Sampling frequencies: 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, and 48 kHz
    • Bit rates: 8-320 kbps, variable bit rate.
  2. WMA 7 (Windows Media Audio 7)
  3. WMA 8 (Windows Media Audio 8)
  4. WMA 9 (Windows Media Audio 9)

 

Để thêm âm thanh, nhạc hay video bạn cần phải khai báo một MediaElement  . Mỗi file media bạn cần hiển thị lên bạn cần thêm chúng vào thư mục chứa project của bạn. Chọn file và thay đổi thuộc tính                    Build Action = “nguồn âm thanh, nhạc, video”   trong cửa sổ Properties như hình 22.1 .   Và hãy chắc chắn là file media mà bạn đang làm được copy vào thư mục ClientBin trong suốt quá trình thực thi dự án.

Hình  22.1. Những thuộc tính của Media File

 

Hãy bắt đầu bằng việc thêm vào 3 button và 3 MediaElements vào trang Page.xaml của chúng ta. Một button cho việc nhạc, một cho âm thanh và một cho video.

<Canvas Background="Black">
    <Button Click="Button_Click_Music" Canvas.Left="10" Canvas.Top="10" Width="80" Height="30" Content="Play Music"></Button>
    <Button Click="Button_Click_Sound" Canvas.Left="100" Canvas.Top="10" Width="80" Height="30" Content="Play Sound"></Button>
    <Button Click="Button_Click_Video" Canvas.Left="200" Canvas.Top="10" Width="80" Height="30" Content="Play Video"></Button>
    <MediaElement x:Name="SoundFile" Source="Boom.mp3" AutoPlay="False"></MediaElement>
    <MediaElement x:Name="MusicFile" Source="Sharon.mp3" AutoPlay="False"></MediaElement>
    <MediaElement Width="300" Height="300" Canvas.Top="100" x:Name="VideoFile" AutoPlay="False"  Source="MyVideo.wmv"></MediaElement>
</Canvas>

Và code phía sau của chúng ta:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
 
namespace Tip22
{
    public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();
        }
 
        private void StopAll()
        {
            MusicFile.Stop();
            SoundFile.Stop();
            VideoFile.Stop();
        }
        private void Button_Click_Music(object sender, RoutedEventArgs e)
        {
            StopAll();
            MusicFile.Play();
        }
 
        private void Button_Click_Sound(object sender, RoutedEventArgs e)
        {
            StopAll();
            SoundFile.Play();
        }
 
        private void Button_Click_Video(object sender, RoutedEventArgs e)
        {
            StopAll();
            VideoFile.Play();
        }
    }
}

Một số chú ý:

  1. Chúng ta sẽ gán  AutoPlay=”False”  để ngăn việc các file media sẽ được tự động play khi ứng dụng bắt đầu. (Tức là tắt chế độ tự động chạy của các file media)
  2. Chúng ta sử dụng thuộc tính Source để chỉ cho ứng dụng biết chúng ta cần sử dụng file nhạc nào.( Tức là, dùng để chỉ đường dẫn đến file nhạc cần sử dụng.)
  3. Chúng ta sử dụng thuộc tính x:Name  để định danh phần tử âm thanh . Sau đó, ta có thể sử dụng tên định danh đó để code một cách dễ dàng. Thí dụ: VideoFile.Play().

Thank you,
--Mike Snow

 

Recent Comments

Leave the first comment for this page.