2009-10-14 15 views
10

मैं अपने कोडिंग में एक संगीत फ़ाइल चलाने की कोशिश करता हूं, लेकिन असफल रहा। मेरे पास एक ही फ़ोल्डर में मेरी संगीत फ़ाइल है जो .cpp फ़ाइल को सहेजती है।विंडोज एपीआई का उपयोग कर सी ++ में कैसे खेलें?

कोई मेरी मदद कर सकते हैं?

मेरे कोड है:

#include <iostream> 
#include <windows.h> 

int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC);  
} 
+0

GetErrorCode() फ़ंक्शन के साथ आप जो त्रुटि कोड प्राप्त कर रहे हैं? – Naveen

+0

i) GetErrorCode (के बारे में निश्चित लेकिन त्रुटि संदेश है नहीं कर रहा हूँ [लिंकर त्रुटि] 'PlaySound @ 12' आईडी लौटे 1 से बाहर निकलें स्थिति –

+0

को अपरिभाषित संदर्भ आप के रूप में लुइस उल्लेख winmm.lib संगीत खेलने के लिए की जरूरत है – ukanth

उत्तर

1

आप निरपेक्ष पथ का उपयोग करें और अगर यह पथ त्रुटि है की जाँच कर सकते हैं?

Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC); 
+0

नहीं, यह काम नहीं करता है। –

+0

क्या आपने आवश्यक lib से लिंक किया था? –

+0

क्या आप मुझे पूरी तरह से काम का उदाहरण दे सकते हैं? –

9

आप ध्वनि फ़ाइल खेलने के लिए काफी लंबे समय से निरपेक्ष पथ का उपयोग करने के लिए सुनिश्चित करें कि आप एक फ़ाइल नाम (उपयोग SND_FILENAME झंडा) भेज रहे हैं, और थामने के कार्यक्रम की जरूरत है (उदाहरण के लिए उपयोग getchar())। आपको अपनी प्रोजेक्ट सेटिंग्स में winmm.lib लाइब्रेरी को लिंक करना होगा, और हेडर में #.hclude windows.h और mmsystem.h को लिंक करना होगा।

#include <windows.h> 
#include <mmsystem.h> 

int main() { 
    PlaySoundA((LPCSTR) "C:\\kenny g.WAV", NULL, SND_FILENAME | SND_ASYNC); 
    getchar(); 
} 

एपीआई: http://msdn.microsoft.com/en-us/library/ms712879(VS.85).aspx
कि यह होना चाहिए। मुझे बताओ, धन्यवाद!

+1

आप जीसीसी/विंडोज़ के तहत उस उदाहरण को कैसे संकलित करेंगे? – lowerkey

1
int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC); 
} 

SND_ASYNC झंडा अपने कार्यक्रम कर सकते हैं (और यह होगा) immediatelly समाप्त के साथ!

PlaySound("kenny g.WAV", NULL, SND_SYNC); आज यह देखने के लिए प्रयास करें कि यह काम करता है या नहीं।

+0

यह काम करता है .. क्षमा करें –

0

पथ के बारे में बोलते हुए, आपकी डेटा फ़ाइल उस स्थान पर होनी चाहिए जहां आपका निष्पादन योग्य नहीं है, न कि आपकी स्रोत फ़ाइल कहां है, यदि पथ पूर्ण नहीं है।

और हाँ, यह बहुत ही सवाल asked 9 साल पहले किया गया है;)

3

अपने संकलक सेटिंग्स के लिए -lwinmm जोड़ने का प्रयास करें thingy। यह मेरे लिए काम किया। बस कंपाइलर विकल्प क्षेत्र में टाइप करें और यह काम करेगा।

0

आप PlaySound (टेक्स्ट ("सिस्टम स्टार्ट"), न्यूल, SND_ALIAS द्वारा परीक्षण कर सकते हैं;

0

बस अगर यह अभी तक अनसुलझे है! आपको पिछली टिप्पणियों में उल्लिखित दो शीर्षलेख फ़ाइलों को शामिल करने की आवश्यकता है, प्रोजेक्ट को आवश्यक lib में लिंक करें और ध्वनि फ़ाइल को अपनी .exe फ़ाइल के रूप में उसी फ़ोल्डर में रखें (यदि आप पूर्ण पथ का उपयोग नहीं कर रहे हैं)

0

इस कोड को आजमाएं यह मेरे लिए काम करता है। इसके अलावा कोड :: लिंकर सेटिंग्स में ब्लॉक का उपयोग करें।

#include <iostream> 
#include <windows.h> 
#include <MMSystem.h> 
int main(){ 
PlaySound(TEXT("your file path.wav") , NULL , SND_SYNC) ; 
    return 0; 
} 
संबंधित मुद्दे