Memutar Lagu menyebabkan WP7 mogok di ponsel, tetapi tidak pada emulator

13

Saya mencoba menerapkan lagu ke dalam permainan yang mulai diputar dan terus-menerus mengulang pada Windows Phone 7 melalui XNA 4.0. Pada emulator, ini berfungsi dengan baik, namun ketika digunakan untuk telepon, ini hanya memberikan layar hitam sebelum kembali ke layar beranda. Berikut adalah kode jahat yang dimaksud, dan mengomentari kode ini membuat aplikasi berjalan dengan baik di telepon:

// 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);
}

File lagu itu sendiri adalah file .wma 2.22mb dengan panjang 2.22 MB pada bitrate 106kbps.

Sekali lagi ini berfungsi dengan baik pada emulator tetapi tidak berjalan sama sekali di telepon. Terima kasih atas bantuan yang Anda berikan!

Michael Zehnich
sumber
4
Cobalah bertahan dalam mencoba-tangkap dan periksa pengecualian apa yang Anda dapatkan. Itu akan membantu dengan mendapatkan bantuan dalam hal ini.
Ray Dey
Saran yang bagus. Pengecualian yang dilayangkan adalah "System.InvalidOperationException: Pemutaran lagu gagal, harap verifikasi bahwa lagu tidak dilindungi DRM." Juga, saya telah mencoba dengan lagu yang disandikan sebagai MP3 dan mendapat hasil yang sama (bekerja di emulator, tidak berfungsi di telepon). Pertanyaan sampingan: apakah ada cara mudah untuk mencetak / menyimpan teks debug di ponsel ..? Satu-satunya pilihan saya adalah menggambar teks di layar, heh.
Michael Zehnich

Jawaban:

13

Kami menemukan ini. Informasi ini tersedia secara online tetapi sangat tersembunyi, jadi saya akan memposting di sini untuk ukuran yang baik.

Pada dasarnya jika telepon ditambatkan ke komputer dan perangkat lunak Zune berjalan, itu mengunci media di telepon, yang berarti bahwa MediaPlayers di aplikasi tidak akan pernah memiliki izin untuk memutar Lagu.

Untuk membuatnya berfungsi, pengguna harus mencabut ikatan telepon (yaitu mencabut kabel USB), atau menggunakan alat Windows Phone Connect yang telah dirancang dengan mempertimbangkan hal ini sehubungan dengan debugging: http: // msdn. microsoft.com/en-us/library/gg180729%28v=VS.92%29.aspx - Saya belum mencoba alat ini, tetapi untethering bekerja seperti pesona.

Juga, ketika aplikasi tidak memiliki izin untuk memutar lagu, itu akan macet kecuali pengecualian ditangani, jadi pastikan untuk menggunakan blok try / catch. Pengecualian yang tertangkap hanya bisa diabaikan.

Michael Zehnich
sumber
1
Ah, kegembiraan DRM.
Jari Komppa
1
Baik untuk tahu, sangat menyebalkan seperti yang saya bayangkan beberapa pengembang mengalami masalah ini.
Ray Dey
2

Jawaban dari Michael Zehnich memang benar. Namun saya menemukan masalah lain yang menyebabkan pengecualian yang sama.

Masalahnya bagi saya adalah bahwa saya kehilangan kapabilitas ID_CAP_MEDIALIB di WMAppManifest.xml saya.

<Capability Name="ID_CAP_MEDIALIB"/>

Semoga ini membantu.

mikeesouth
sumber