Phát bài hát khiến WP7 gặp sự cố trên điện thoại, nhưng không phải trên trình giả lập


13

Tôi đang cố gắng triển khai một bài hát thành một trò chơi bắt đầu chơi và liên tục lặp lại trên Windows Phone 7 thông qua XNA 4.0. Trên trình giả lập, điều này hoạt động tốt, tuy nhiên khi được triển khai cho điện thoại, nó chỉ cần cho màn hình đen trước khi quay lại màn hình chính. Dưới đây là mã lừa đảo đang được đề cập và việc nhận xét mã này khiến ứng dụng chạy tốt trên điện thoại:

// in the constructor fields
private Song song;

// in the LoadContent() method
song = Content.Load<Song>("song");

// in the Update() method
if (MediaPlayer.GameHasControl && MediaPlayer.State != MediaState.Playing)
{
    MediaPlayer.Play(song);
}

Bản thân tệp bài hát là một tệp dài 2:53, 2,28mb .wma với tốc độ bit 106kbps.

Một lần nữa, nó hoạt động hoàn hảo trên trình giả lập nhưng hoàn toàn không chạy trên điện thoại. Cảm ơn vì bất kì sự giúp đỡ nào của bạn!


4
Hãy thử dùng thử và kiểm tra xem bạn đang nhận được ngoại lệ nào. Điều đó sẽ giúp với việc nhận được một số trợ giúp về điều này.
Ray Dey

Lời khuyên tốt. Ngoại lệ được ném là "System.InvalidOperationException: Phát lại bài hát không thành công, vui lòng xác minh rằng bài hát không được bảo vệ DRM." Ngoài ra, tôi đã thử với bài hát được mã hóa dưới dạng MP3 và nhận được kết quả tương tự (hoạt động trong trình giả lập, không hoạt động trong điện thoại). Một câu hỏi phụ: có cách nào dễ dàng để in / lưu văn bản gỡ lỗi trên điện thoại không ..? Lựa chọn duy nhất của tôi là vẽ văn bản trên màn hình, heh.
Michael Zehnich

Câu trả lời:


13

Chúng tôi đã tìm ra điều này. Thông tin có sẵn trực tuyến nhưng nó thực sự được giấu rất kỹ, vì vậy tôi sẽ đăng nó ở đây để có biện pháp tốt.

Về cơ bản, nếu điện thoại được buộc vào máy tính và phần mềm Zune đang chạy, nó sẽ khóa phương tiện trên điện thoại, điều đó có nghĩa là MediaPlayers trong ứng dụng sẽ không bao giờ được phép phát Bài hát.

Để làm cho nó hoạt động, người dùng phải hủy kết nối điện thoại (nghĩa là rút dây USB) hoặc sử dụng công cụ Windows Phone Connect đã được thiết kế với mục đích này để gỡ lỗi: http: // msdn. microsoft.com/en-us/l Library / gg180729% 28v = VS.92% 29.aspx - Tôi chưa thử công cụ này, nhưng việc trói buộc hoạt động như một bùa mê.

Ngoài ra, khi ứng dụng không có quyền phát một bài hát, nó sẽ bị sập trừ khi xử lý ngoại lệ, vì vậy hãy đảm bảo sử dụng các khối thử / bắt. Ngoại lệ bị bắt có thể đơn giản được bỏ qua.


1
Ah, niềm vui của DRM.
Jari Komppa

1
Thật tốt khi biết, phiền phức như địa ngục như tôi tưởng tượng khá nhiều nhà phát triển gặp phải vấn đề này.
Ray Dey

2

Câu trả lời từ Michael Zehnich thực sự chính xác. Tuy nhiên, tôi vấp phải một vấn đề khác gây ra ngoại lệ tương tự.

Vấn đề đối với tôi là tôi đã thiếu khả năng ID_CAP_MEDIALIB trong WMAppManifest.xml của mình.

<Capability Name="ID_CAP_MEDIALIB"/>

Hi vọng điêu nay co ich.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.