2011-07-22 35 views
5

Khi tôi đặt SmoothStreamingSource của tôi và sau đó gọi .Play() tôi nhận được ngoại lệ sau đây ...SmoothStreamingMediaElement.Play() - Ngoại lệ ném nhưng người chơi bắt đầu

"Play chưa được phép khi không có bộ nguồn. "

Điều kỳ lạ là nếu tôi xử lý ngoại lệ này (được hiển thị trong mã bên dưới), video sẽ bắt đầu phát. Odd? Theo msdn, thuộc tính SmoothStreamingSource đặt thuộc tính Nguồn tự động nên tôi không nên nhận ngoại lệ. Bước qua mã xác nhận rằng thuộc tính Source được thiết lập sau khi thiết lập thuộc tính SmoothStreamingSource.

Tôi không muốn xử lý ngoại lệ và tiếp tục một cách vui vẻ nếu đây là dấu hiệu của một vấn đề lớn hơn trong nội bộ.

Có chuyện gì với điều này? Mã của tôi ...

try 
     { 
      Uri uri = (Uri)((Button)source).Tag; 

      smoothStreamingMediaElement1.SmoothStreamingSource = uri; 

      if (smoothStreamingMediaElement1.SmoothStreamingSource != null) 
       MessageBox.Show(smoothStreamingMediaElement1.SmoothStreamingSource.ToString()); 
      else 
       MessageBox.Show("SmoothStreamingSource is NULL"); 

      smoothStreamingMediaElement1.Play(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
+0

Tôi có cùng một vấn đề sau khi tôi chuyển từ 1,1 đến 1,5 khách hàng trơn tru ... có vẻ như không ai đang sử dụng các tính năng này ... –

Trả lời

4

Khi bạn đặt thuộc tính SmoothStreamingSource, bạn chỉ cần đặt biến Uri không có gì khác.

Để người chơi bắt đầu chơi, bạn cần đợi cho SmoothStreamingMediaElement tải xuống tệp kê khai chứa tất cả thông tin bắt buộc để phát luồng.

Vì vậy, trong trường hợp của bạn, tôi sẽ không gọi phương thức Play ngay lập tức sau khi bạn đặt thuộc tính SmoothStreamingSource, nhưng đăng ký sự kiện ManifestReady hoặc MediaOpened và chỉ sau đó gọi phương thức Play.

+0

Cảm ơn, điều đó thực sự đã giúp tôi! –

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