การเล่นเพลงทำให้ WP7 ขัดข้องทางโทรศัพท์ แต่ไม่ใช่ในอีมูเลเตอร์


13

ฉันพยายามใช้เพลงเป็นเกมที่เริ่มเล่นและวนซ้ำอย่างต่อเนื่องบน Windows Phone 7 ผ่าน XNA 4.0 บนอีมูเลเตอร์สิ่งนี้ใช้ได้ดี แต่เมื่อนำไปใช้กับโทรศัพท์มันจะให้หน้าจอสีดำก่อนกลับไปที่หน้าจอหลัก นี่คือรหัสโกงในคำถามและการแสดงความคิดเห็นรหัสนี้ทำให้แอปทำงานได้ดีบนโทรศัพท์:

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

ไฟล์เพลงนั้นมีความยาว 2:53, 2.28mb .wma ที่ 106kbps บิตเรต

อีกครั้งนี้ทำงานได้อย่างสมบูรณ์แบบบนโปรแกรมจำลอง แต่ไม่ทำงานเลยบนโทรศัพท์ ขอบคุณสำหรับความช่วยเหลือใด ๆ ที่คุณสามารถให้ได้!


4
ลองติดลองและตรวจสอบสิ่งที่คุณได้รับยกเว้น ที่ควรช่วยในการรับความช่วยเหลือนี้
Ray Dey

คำปรึกษาที่ดี. ข้อยกเว้นที่เกิดขึ้นคือ "System.InvalidOperationException: การเล่นเพลงล้มเหลวโปรดตรวจสอบว่าเพลงไม่ได้รับการป้องกัน DRM" นอกจากนี้ฉันได้ลองกับเพลงที่เข้ารหัสเป็น MP3 และได้ผลลัพธ์เดียวกัน (ใช้งานในโปรแกรมจำลองไม่ทำงานในโทรศัพท์) คำถามด้าน: มีวิธีง่าย ๆ ในการพิมพ์ / บันทึกข้อความ debug บนโทรศัพท์ .. ตัวเลือกเดียวของฉันคือการวาดข้อความบนหน้าจอใช่มั้ย
Michael Zehnich

คำตอบ:


13

เราพบสิ่งนี้ มีข้อมูลออนไลน์ แต่มันถูกซ่อนไว้ดีมากดังนั้นฉันจะโพสต์ที่นี่เพื่อวัดที่ดี

โดยทั่วไปหากโทรศัพท์ถูกเชื่อมต่อกับคอมพิวเตอร์และซอฟต์แวร์ Zune กำลังทำงานอยู่จะทำการล็อคสื่อบนโทรศัพท์ซึ่งหมายความว่า MediaPlayers ในแอพจะไม่ได้รับอนุญาตให้เล่นเพลง

เพื่อให้สามารถใช้งานได้ผู้ใช้จะต้องปลดสายโทรศัพท์ (เช่นถอดสาย USB) หรือใช้เครื่องมือ Windows Phone Connect ซึ่งได้รับการออกแบบโดยคำนึงถึงการดีบักhttp: // msdn microsoft.com/en-us/library/gg180729%28v=VS.92%29.aspx - ฉันยังไม่ได้ลองใช้เครื่องมือ แต่การปลดโยงทำงานได้อย่างมีเสน่ห์

นอกจากนี้เมื่อแอปไม่ได้รับอนุญาตให้เล่นเพลงมันจะหยุดทำงานยกเว้นว่ามีการจัดการข้อยกเว้นดังนั้นควรใช้ try / catch block ข้อยกเว้นที่ถูกดักจับสามารถถูกละเว้นได้


1
อ้าความสุขของ DRM
Jari Komppa

1
เป็นการดีที่จะรู้ว่าน่ารำคาญเหมือนนรกอย่างที่ฉันจินตนาการนักพัฒนาบางคนพบเจอปัญหานี้
Ray Dey

2

คำตอบจาก Michael Zehnich นั้นถูกต้องแน่นอน อย่างไรก็ตามฉันพบปัญหาอื่นที่ทำให้เกิดข้อยกเว้นเดียวกัน

ปัญหาสำหรับฉันคือฉันขาดความสามารถ ID_CAP_MEDIALIB ใน WMAppManifest.xml ของฉัน

<Capability Name="ID_CAP_MEDIALIB"/>

หวังว่านี่จะช่วยได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.