WP7 को फोन पर क्रैश करने के लिए एक सॉन्ग बजाना, लेकिन एमुलेटर पर नहीं


13

मैं एक गेम में एक गीत को लागू करने की कोशिश कर रहा हूं, जो XNA 4.0 के माध्यम से विंडोज फोन 7 पर खेलना और लगातार लूप करना शुरू करता है। एमुलेटर पर, यह ठीक काम करता है, हालांकि जब एक फोन पर तैनात किया जाता है, तो यह होम स्क्रीन पर वापस जाने से पहले बस एक काली स्क्रीन देता है। यहाँ प्रश्न में दुष्ट कोड है, और इस कोड को टिप्पणी करने से ऐप फोन पर ठीक चलता है:

// 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
एक कोशिश-पकड़ने में चिपके रहने की कोशिश करें और देखें कि आपको क्या अपवाद मिल रहा है। इस पर कुछ मदद पाने के लिए मदद करनी चाहिए।
रे डे

अच्छी सलाह। अपवाद फेंका गया है "System.InvalidOperationException: गीत प्लेबैक विफल रहा, कृपया सत्यापित करें कि गाना DRM से सुरक्षित नहीं है।" इसके अलावा, मैंने एक एमपी 3 के रूप में इनकोडिंग गीत के साथ प्रयास किया है और उसी परिणाम प्राप्त किया है (एमुलेटर में काम किया, फोन में काम नहीं करता है)। एक पक्ष का सवाल: क्या फोन पर डिबग टेक्स्ट को प्रिंट / सेव करने का एक आसान तरीका है ..? मेरा एकमात्र विकल्प स्क्रीन पर पाठ को आकर्षित करना था, हेह।
माइकल ज़ेनिच

जवाबों:


13

हमने इसका पता लगा लिया। जानकारी ऑनलाइन उपलब्ध है, लेकिन यह वास्तव में अच्छी तरह से छिपी हुई है, इसलिए मैं इसे अच्छे उपाय के लिए यहां पोस्ट करूंगा।

मूल रूप से यदि फोन कंप्यूटर पर दबा हुआ है और Zune सॉफ्टवेयर चल रहा है, तो यह फोन पर मीडिया को लॉक कर देता है, जिसका अर्थ है कि ऐप्स में MediaPlayers को कभी भी सॉन्ग चलाने की अनुमति नहीं होगी ।

इसे काम पर लाने के लिए, उपयोगकर्ता को फोन को अनट्रेड करना होगा (यानी USB कॉर्ड को अनप्लग करें), या विंडोज फोन कनेक्ट टूल का उपयोग करें जिसे डिबगिंग के संबंध में इसे ध्यान में रखकर बनाया गया है: http: // msdn। microsoft.com/en-us/library/gg180729%28v=VS.92%29.aspx - मैंने टूल आज़माया नहीं है, लेकिन अनैतिकता ने एक आकर्षण की तरह काम किया है।

इसके अलावा, जब ऐप के पास गाना बजाने की अनुमति नहीं है, तो यह तब तक क्रैश हो जाएगा जब तक कि अपवाद को नियंत्रित नहीं किया जाता है, इसलिए कोशिश / कैच ब्लॉक का उपयोग करना सुनिश्चित करें। पकड़े गए अपवाद को केवल अनदेखा किया जा सकता है।


1
आह, डीआरएम की खुशियाँ।
जरी कोमप्पा

1
यह जानकर अच्छा लगा कि नरक के रूप में कष्टप्रद, जैसा कि मैं कल्पना करता हूं कि कुछ डेवलपर्स इस मुद्दे पर चलते हैं।
रे डे

2

माइकल ज़ेनिच का जवाब वास्तव में सही है। हालांकि मैं एक और समस्या पर ठोकर खाई, जो एक ही अपवाद का कारण है।

मेरे लिए समस्या यह थी कि मुझे अपने WMAppManifest.xml में ID_CAP_MEDIALIB क्षमता याद आ रही थी।

<Capability Name="ID_CAP_MEDIALIB"/>

उम्मीद है की यह मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.