WP7'nin telefonda çökmesine neden olan, ancak emülatörde olmayan bir Şarkı Çalma


13

Çalmaya başlayan ve sürekli olarak XNA 4.0 üzerinden Windows Phone 7'de döngü yapan bir oyuna bir şarkı uygulamaya çalışıyorum. Emülatörde bu iyi çalışıyor, ancak bir telefona dağıtıldığında, ana ekrana geri dönmeden önce sadece siyah bir ekran veriyor. Söz konusu haydut kodu ve bu kodu yorumlamak, uygulamanın telefonda iyi çalışmasını sağlar:

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

Şarkı dosyasının kendisi 106kbps bit hızında 2:53 uzunluğunda, 2.28mb .wma dosyasıdır.

Yine bu emülatörde mükemmel çalışıyor, ancak telefonda hiç çalışmıyor. Sağlayabileceğiniz herhangi bir yardım için teşekkürler!


4
Bir deneme yakalamayı deneyin ve hangi istisnayı aldığınızı kontrol edin. Bu konuda yardım almanızda fayda var.
Ray Dey

İyi tavsiye. Atılan istisna "System.InvalidOperationException: Şarkı çalınamadı, lütfen şarkının DRM korumalı olmadığını doğrulayın." Ayrıca, bir MP3 olarak kodlanmış şarkı ile denedim ve aynı sonuçları aldım (emülatörde çalıştı, telefonda çalışmıyor). Yan soru: Hata ayıklama metnini telefonda yazdırmanın / kaydetmenin kolay bir yolu var mı? Tek seçeneğim metni ekrana çizmekti, heh.
Michael Zehnich

Yanıtlar:


13

Bunu anladık. Bilgiler çevrimiçi olarak mevcuttur, ancak gerçekten çok gizlidir, bu yüzden iyi bir ölçü için buraya göndereceğim.

Temel olarak telefon bir bilgisayara bağlıysa ve Zune yazılımı çalışıyorsa, medyayı telefona kilitler, yani uygulamalardaki MediaPlayers'ın bir Şarkı çalma izni asla olmaz .

Çalışması için, kullanıcının telefonun bağlantısını kesmesi (yani USB kablosunu çıkarması) veya hata ayıklama ile ilgili olarak bu şekilde tasarlanmış Windows Phone Connect aracını kullanması gerekir: http: // msdn. microsoft.com/en-us/library/gg180729%28v=VS.92%29.aspx - Aracı denemedim, ancak telkin çekicilik bir cazibe gibi çalıştı.

Ayrıca, uygulamanın bir şarkı çalma izni olmadığında, istisna ele alınmadıkça kilitlenir, bu nedenle try / catch bloklarını kullandığınızdan emin olun. Yakalanan istisna basitçe yok sayılabilir.


1
Ah, DRM'in sevinci.
Jari Komppa

1
Bilmek güzel, çok az geliştiricinin bu konuya girdiğini hayal ettiğim kadar can sıkıcı.
Ray Dey

2

Michael Zehnich'in cevabı gerçekten doğrudur. Ancak aynı istisnayı yaratan başka bir sorunla karşılaştım.

Benim için sorun benim WMAppManifest.xml ID_CAP_MEDIALIB yeteneği eksik oldu.

<Capability Name="ID_CAP_MEDIALIB"/>

Bu yardımcı olur umarım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.