2010-04-07 16 views
5

मेरे पास मेरे डब्लूएमपी इंस्टेंस में एक प्लेलिस्ट लोड है, और मैं इसे सिर्फ एक गीत लूप करना चाहता हूं। सब कुछ मैं Google पर गया है अब तक मुझसे कहता है यह करने के लिए:प्लेलिस्ट में एकल गीत दोहराएं

private AxWindowsMediaPlayer wmp; 
wmp.settings.setMode("loop", true); 

हालांकि, यह केवल संपूर्ण प्लेलिस्ट को दोहराने के लिए लगता है। मैं जो व्यवहार चाहता हूं वह यह है कि, यदि मैं प्लेलिस्ट में गीत 5 खेल रहा हूं, तो मैं "दोहराना" सक्षम करता हूं, फिर गीत 5 समाप्त होने पर स्वचालित रूप से दोहराया जाएगा (गीत 6 पर जाने के बजाए)। अधिकांश कार एमपी 3 प्लेयर पहले से ही इस तरह से काम करते हैं; क्या मेरे सी # प्रोग्राम में ऐसा करने का एक अच्छा मूल तरीका है, या क्या मुझे "हैक" समाधान तैयार करना होगा, जैसे कि अगले गीत को लोड होने पर आग लगने वाली घटना को रोकना?

उत्तर

0

क्या आप PlayStateChange ईवेंट को संभाल नहीं सकते हैं और पता लगा सकते हैं कि MediaEnded राज्य वर्तमान ट्रैक के लिए सेट किया गया है और बस इसे रिवाइंड करें?

+0

हाँ, में तथ्य यह है कि मैं इसे करने के बारे में सोच रहा था ... मैं सिर्फ यह सुनिश्चित करना चाहता था कि कस्टम कोडिंग का एक गुच्छा करने से पहले, मैं इसे संभालने का "मूल" तरीका नहीं था। –

1

केवल एक गीत के साथ एक नया सेट बनाने का प्रयास करें जिसे आप बार-बार खेलना चाहते हैं।

+0

ठीक है, इससे समस्या हल हो जाएगी, लेकिन जब मैं दोहराना बंद करना चाहता हूं तो क्या होता है? मुझे मूल प्लेलिस्ट को फिर से लोड करने के लिए एक तंत्र की आवश्यकता होगी और सटीक ट्रैक और स्थिति पर वापस कूदें, जब मैं "दोहराना" बंद कर दिया था। नाटक राज्य को संभालना आसान होगा और यह जानने के लिए कि क्या मैं दोहराना चाहता हूं या नहीं, सिर्फ ध्वज संग्रहीत करना। –

0

संक्षिप्त उत्तर यह है कि डब्ल्यूएमपी एक एकल ट्रैक दोहराने का समर्थन करता है!

तो सबसे अच्छा आप कर सकते हैं मच्छा के सुझाव का पालन करें और गतिशील रूप से प्लेलिस्ट संपादित करें। उदाहरण के लिए, जब आप प्लेलिस्ट में एक ट्रैक को दोहराना चाहते हैं तो प्लेलिस्ट को संपादित करें जैसे कि इसमें केवल एक ट्रैक है और लूप सक्षम करें। कहीं और अपनी पुरानी प्लेलिस्ट को बचाने के लिए मत भूलना। जब उपयोगकर्ता गान-लूप अक्षम करता है तो आपकी पुरानी प्लेलिस्ट को पुनर्स्थापित करें और इसे दोहराने के लिए सेट करें।

दुर्भाग्यवश आपको इस बात की कमी है कि जब आप प्लेलिस्ट बदलते हैं तो गीत शुरुआत से शुरू हो सकता है: जेम्स के सुझाव का पालन करें और अपनी प्लेलिस्ट को MediaEnded स्थिति में शेड्यूल करें।

यह सबसे अच्छा है जो मैं आपको बता सकता हूं।

1

मेरा दृष्टिकोण यहां है। मेरी प्लेलिस्ट के लिए, WMPLib प्लेलिस्ट का उपयोग करने के बजाय, मैंने टाइप IWMPMedia की एक स्थिर जेनेरिक सूची बनाई। इससे मुझे मेरी प्लेलिस्ट में गानों को जोड़ने में मदद मिली, जिसमें किसी भी कठिनाई के साथ जेनेरिक सूची सभी गानों का ट्रैक नहीं रखती थी। तो एक गीत को दोहराने के लिए, क्या मैंने किया था मैं प्लेलिस्ट में खेल वर्तमान गीत की वर्तमान सूचकांक ले लिया था, और यह एक पूर्णांक के बराबर निर्धारित करते हैं, तो मैं की तर्ज पर कुछ किया:

int repeatSongIndex = index;//in this case, our index is the current song playing 

player.URL = playlist[repeatSongIndex].sourceURL;//lets have player.URL point to the song object chosen to be repeated to its source url (the directory of the file). 
bool isRepeat = true;//to keep track of whether the repeat option is enabled or not. 
संबंधित मुद्दे