2011-08-06 34 views
5

Tôi đang cố gắng để phát nhạc từ bộ sưu tập bài hát điện thoại.Hiệu ứng âm thanh trong cửa sổ điện thoại 7

Thuộc tính hiệu ứng âm thanh có hỗ trợ phát từ bộ sưu tập bài hát không?

Trước đây tôi đã sử dụng trình phát đa phương tiện để phát bài hát nhưng tôi muốn đặt nhạc thành không thể tạm dừng.

Mã cho hiệu ứng âm thanh: Hiệu ứng SoundEffect; Ví dụ SoundEffectInstance;

 effect = SoundEffect.FromStream(ml.Songs[songSelectedIndex]); 
     instance = effect.CreateInstance(); 
     instance.IsLooped = true; 
     instance.Volume = 1.0f; 
     instance.Pitch = 1.0f; 
     instance.Play(); 

Mã cho thư viện phương tiện truyền thông:

 using (var ml = new MediaLibrary()) 

     { 
      FrameworkDispatcher.Update(); 
      MediaPlayer.Play(ml.Songs[songSelectedIndex]); 
      MediaPlayer.IsRepeating = true; 
     } 

Trả lời

1

Một Song là một lớp có chứa các dòng âm nhạc và chỉ có thể được chơi với Media Player. Lý do mã của bạn không hoạt động là do các phương pháp FromStream đòi hỏi dòng là:

  • Một làn sóng PCM tập tin
  • Mono hoặc stereo
  • 8 hoặc 16 bit
  • giữa 8.000 Hz và tỷ lệ mẫu 48.000 Hz

Tôi chưa thử điều này, cũng như không biết nguyên tắc chứng nhận của nó, nhưng bạn có thể làm cho âm nhạc không thể giải quyết được với MediaPlayer. Xử lý sự kiện MediaStateChanged và kiểm tra xem nhạc có bị tạm dừng hay không. Nếu có, hãy gọi phương thức Resume để tiếp tục phát.

Chỉnh sửa - Cập nhật bằng mã:

Xử lý sự kiện MediaStageChanged giống như bất kỳ sự kiện nào khác.

MediaPlayer.MediaStateChanged += new EventHandler<EventArgs>(MediaPlayer_MediaStateChanged); 

Trong xử lý sự kiện của bạn, làm điều này:

void MediaPlayer_MediaStateChanged(object sender, EventArgs e) 
{ 
    if (MediaPlayer.State == MediaState.Paused) MediaPlayer.Resume(); 
} 
+0

tôi đã cố gắng để nghiên cứu về cách sử dụng các mediaStateChanged nhưng i didnt thực sự tìm thấy một mẫu trên đó. Bạn có một ví dụ? –

+0

@ben tan - Đã cập nhật câu trả lời – keyboardP

Các vấn đề liên quan