पायथन के साथ ऑडियो चलाएं


107

मैं पायथन स्क्रिप्ट से ऑडियो कैसे खेल सकता हूं (यह 1 सेकंड की ध्वनि जैसा होगा)?

यह सबसे अच्छा होगा यदि यह प्लेटफ़ॉर्म स्वतंत्र था, लेकिन सबसे पहले इसे मैक पर काम करने की आवश्यकता है।

मुझे पता है कि मैं केवल afplay file.mp3पायथन के भीतर से कमांड निष्पादित कर सकता हूं , लेकिन क्या यह संभव है कि आप कच्चे पायथन में कर सकें? अगर मैं बाहरी पुस्तकालयों पर भरोसा नहीं करता तो भी बेहतर होता।


Pyglet कहा जाता है एक बाहरी पुस्तकालय के माध्यम से वापस ऑडियो खेलने की क्षमता है AVbin । Pyglet एक ctypes रैपर है जो प्रत्येक प्लेटफॉर्म पर मूल सिस्टम कॉल का समर्थन करता है। दुर्भाग्य से, मुझे नहीं लगता कि मानक पुस्तकालय में कुछ भी ऑडियो वापस चलेगा।
टेक्नोमलोजिकल

यदि आपको पोर्टेबल पायथन ऑडियो लाइब्रेरी की आवश्यकता है, तो PyAudio का प्रयास करें । यह निश्चित रूप से एक मैक पोर्ट है। एमपी 3 फ़ाइलों के लिए के रूप में: यह निश्चित रूप से "कच्चे" पायथन में उल्लेखनीय है, केवल मुझे डर है कि आपको अपने आप को सब कुछ कोड करना होगा :)। यदि आप कुछ बाहरी लाइब्रेरी का खर्च उठा सकते हैं तो मैंने कुछ PyAudio - PyLame का नमूना यहां पाया है।
ग्रेज़गोरेज़ गेसक

जवाबों:


17

आप पायथन ऑडियो के बारे में जानकारी यहाँ से प्राप्त कर सकते हैं: http://wiki.python.org/moin/Audio/

ऐसा नहीं लगता है कि यह बाहरी पुस्तकालयों के बिना एमपी 3 फ़ाइलें खेल सकता है। आप या तो अपने .mp3 फ़ाइल को .wav या अन्य प्रारूप में परिवर्तित कर सकते हैं, या PyMedia जैसी लाइब्रेरी का उपयोग कर सकते हैं ।


12
लेकिन मैं एक .wavफ़ाइल कैसे खेलूँ?
theonlygusti

@theonlygusti यहां देखें , उदाहरण के लिए।
एंडरसन ग्रीन

42

आपका सबसे अच्छा शर्त शायद pygame / SDL का उपयोग करना है । यह एक बाहरी पुस्तकालय है, लेकिन इसे प्लेटफार्मों में बहुत समर्थन प्राप्त है।

pygame.mixer.init()
pygame.mixer.music.load("file.mp3")
pygame.mixer.music.play()

आप pygame.mixer.music प्रलेखन में ऑडियो मिक्सर समर्थन के बारे में अधिक विशिष्ट दस्तावेज पा सकते हैं


2
मेरे लिए, यह काम नहीं कर रहा था। मेरा मतलब है, यह खेल रहा था लेकिन कोई आवाज नहीं। मैंने time.sleep(5)अंत में जोड़ा और वह काम किया। विंडोज 8.1 पर अजगर 3.6
नागभूषण एसएन

आग पैकेज! धन्यवाद!
Сергей Зеленчук 15

यह मानक ".wav", ".mp3" और ".ogg" के साथ फ़ेडोरा पर काम नहीं करता है (फ़ाइल नाम 'फ़ाइलनाम खोलने में असमर्थ')
केल्विन-रुइज़

1
@ केल्विन-रुइज़ मैंने अभी पुष्टि की है कि मैं एमपी 3 और ऑग फाइलों को खेलने के लिए एफसी 31 में उपरोक्त कोड का उपयोग करने में सक्षम हूं। मुझे लगता है कि आपके पास एक बड़ी समस्या है जो आपके प्लेटफॉर्म के कुछ विस्तृत ज्ञान की आवश्यकता है।
TML

18

इस उद्देश्य के लिए एक अपेक्षाकृत सरल और हल्की लाइब्रेरी है जो सिम्पीडियो पर एक नज़र डालें :

> pip install simpleaudio

फिर:

import simpleaudio as sa

wave_obj = sa.WaveObject.from_wave_file("path/to/file.wav")
play_obj = wave_obj.play()
play_obj.wait_done()

असम्पीडित 16 बिट पीसीएम फ़ाइलों का उपयोग करना सुनिश्चित करें।


अच्छा, धन्यवाद - उन खेलों के लिए उपयोगी, जिन्हें लघु ध्वनि प्रभाव खेलने की आवश्यकता होती है, और अजगर 3. का समर्थन करता है
थॉमस

18

प्लेसाउंड की कोशिश करें जो कि प्योर पाइथन, क्रॉस प्लेटफॉर्म, सिंगल फंक्शन मॉड्यूल है जिसमें साउंड बजाने के लिए कोई निर्भरता नहीं है।

पाइप के माध्यम से स्थापित करें:

$ pip install playsound

एक बार स्थापित करने के बाद, आप इसे इस तरह से उपयोग कर सकते हैं:

from playsound import playsound
playsound('/path/to/a/sound/file/you/want/to/play.mp3')

36
इसे पढ़कर मैं इतना भावुक हो गया। मेरी आँखें सचमुच खुशी से फटी रह गईं। खुद से उस तरह की प्रतिक्रिया की उम्मीद नहीं की थी। (वे मेरे द्वारा बनाए गए एक मॉड्यूल से जुड़े।)
आर्टऑफवर्फ

के लिए +1 playsound। मैंने यहाँ कुछ हल निकाले, और इसने मेरे लिए सबसे आसान काम किया। pygameएक संक्षिप्त परीक्षण के दौरान दुर्भाग्य से समाधान मेरे काम नहीं आया।
ट्रेवर सुलिवन

13

में pydub हम हाल ही में किया है (उपप्रक्रिया के माध्यम से) ffplay का उपयोग करने का विकल्प चुना उपकरणों की ffmpeg सूट है, जो आंतरिक रूप से एसडीएल का उपयोग करता है से।

यह हमारे उद्देश्यों के लिए काम करता है - मुख्य रूप से सिर्फ इंटरैक्टिव मोड में pydub कोड के परिणामों का परीक्षण करना आसान बनाता है - लेकिन यह डाउनसाइड है, जैसे मैक पर डॉक में एक नया कार्यक्रम दिखाई देता है।

मैंने कार्यान्वयन को ऊपर से जोड़ा है, लेकिन एक सरलीकृत संस्करण इस प्रकार है:

import subprocess

def play(audio_file_path):
    subprocess.call(["ffplay", "-nodisp", "-autoexit", audio_file_path])

-nodispझंडा एक नई विंडो प्रदर्शित होने से ffplay बंद हो जाता है, और -autoexitझंडा बाहर निकलने के लिए ffplay कारण बनता है और स्थिति कोड लौटा जब ऑडियो फाइल किया खेल है।

संपादित करें : pydub अब प्लेबैक के लिए pyaudio का उपयोग करता है जब यह स्थापित होता है और मेरे द्वारा बताए गए डाउनसाइड से बचने के लिए ffplay पर वापस आ जाता है। उपरोक्त लिंक उस कार्यान्वयन को भी दिखाता है।


1
Pydub ऐसा लगता है कि यह एक रैपर लाइब्रेरी के रूप में काफी संभावना है - मैं इसे अब स्थापित कर रहा हूं।
छाया

1
लानत PyDub अच्छा लग रहा है और यह अभी भी वास्तव में सक्रिय है।
३.३३

13

देर से जवाब के लिए खेद है, लेकिन मुझे लगता है कि यह मेरे पुस्तकालय का विज्ञापन करने के लिए एक अच्छी जगह है ...

AFAIK, मानक पुस्तकालय में ऑडियो चलाने के लिए केवल एक मॉड्यूल है: ossaudiodev । अफसोस की बात है, यह केवल लिनक्स और फ्रीबीएसडी पर काम करता है।

अद्यतन: वहाँ भी जीत है , लेकिन जाहिर है यह भी मंच विशिष्ट है।

कुछ और प्लेटफ़ॉर्म-स्वतंत्र के लिए, आपको बाहरी लाइब्रेरी का उपयोग करना होगा।

मेरी सिफारिश साउंडदेवीस मॉड्यूल है (लेकिन सावधान रहें, मैं लेखक हूं)।

पैकेज में मैक ओएस एक्स और विंडोज के लिए पूर्व-संकलित पोर्टआडियो लाइब्रेरी शामिल है, और इसे आसानी से स्थापित किया जा सकता है:

pip install sounddevice --user

यह NumPy एरेज़ से बैक साउंड खेल सकता है, लेकिन यह प्लेन पायथन बफ़र्स का उपयोग कर सकता है (यदि NumPy उपलब्ध नहीं है)।

एक NumPy सरणी को वापस चलाने के लिए, आपको केवल इतना चाहिए (यह मानते हुए कि ऑडियो डेटा में 44100 हर्ट्ज का नमूना आवृत्ति है):

import sounddevice as sd
sd.play(myarray, 44100)

अधिक जानकारी के लिए, दस्तावेज़ीकरण पर एक नज़र डालें ।

यह ध्वनि फ़ाइलों को पढ़ / लिख नहीं सकता है, आपको इसके लिए एक अलग पुस्तकालय की आवश्यकता होगी।


महान! बस मुझे लहरों के बारे में एक क्लास डेमो प्रोग्राम बनाने की आवश्यकता थी।
बिल एन

5

आप इसे देख सकते हैं: http://www.speech.kth.se/snack/

s = Sound() 
s.read('sound.wav') 
s.play()

3
इतना साफ दिखता है, काश इसके लिए एक पाइप पैकेज होता। स्थापित करने में आसानी प्रमुख है
जोनाथन

4

हारून का जवाब आवश्यक से लगभग 10 गुना अधिक जटिल प्रतीत होता है। बस ऐसा करें यदि आपको केवल एक जवाब की आवश्यकता है जो ओएस एक्स पर काम करता है:

from AppKit import NSSound

sound = NSSound.alloc()
sound.initWithContentsOfFile_byReference_('/path/to/file.wav', True)
sound.play()

एक बात ... यह तुरंत लौटता है। तो आप यह भी करना चाह सकते हैं, अगर आप चाहते हैं कि जब तक आवाज खत्म न हो जाए तब तक कॉल बंद रहे।

from time import sleep

sleep(sound.duration())

संपादित करें: मैंने इस फ़ंक्शन को लिया और इसे विंडोज और लिनक्स के लिए वेरिएंट के साथ जोड़ दिया। परिणाम एक शुद्ध अजगर, क्रॉस प्लेटफॉर्म मॉड्यूल है जिसमें कोई निर्भरता नहीं है जिसे प्लेसाउंड कहा जाता है । मैंने इसे pypi पर अपलोड किया है।

pip install playsound

फिर इसे इस तरह चलाएं:

from playsound import playsound
playsound('/path/to/file.wav', block = False)

एमपी 3 फाइलें भी ओएस एक्स पर काम करती हैं। डब्ल्यूएवी को सभी प्लेटफार्मों पर काम करना चाहिए। मुझे नहीं पता कि प्लेटफ़ॉर्म / फ़ाइल प्रारूप के अन्य संयोजन क्या काम करते हैं या नहीं - मैंने उन्हें अभी तक कोशिश नहीं की है।


मुझे निम्न त्रुटि मिलती है: पायथन 3.5 (विंडोज) पर "बाइट्स ऑब्जेक्ट को कड़ाई से परिवर्तित करने के लिए" परिवर्तित नहीं किया जा सकता है।
इरविन मेयर

@ErwinMayer - क्या आप playsoundमेरे द्वारा लिखे गए मॉड्यूल के बारे में बात कर रहे हैं ? मैंने इसे पायथन 2.7.11 से कुछ भी नया परीक्षण नहीं किया है ... मैं 3.5 पर इसे ठीक करने में निश्चित रूप से देख सकता हूं ...
ArtOfWarfare

वास्तव में। यह पायथन 3 अंतर के कारण होना चाहिए।
इरविन मेयर

AppKit है निर्भरता।
क्रिस लार्सन

2
@ArtOfWarfare यह सच नहीं है। यह सिस्टम अजगर के साथ स्थापित किया गया है, लेकिन अधिकांश वितरणों के साथ नहीं, जिसमें python.org से आधिकारिक वितरण भी शामिल है। ज्यादातर लोग जानते हैं कि एसआईपी प्रतिबंधों को खत्म करने के लिए जो लोग अजगर का उपयोग करते हैं उनमें से एक वितरण स्थापित करता है। अधिकांश वितरण के लिए AppKit प्राप्त करने के लिए, एक उपयोगकर्ता को pyobjc स्थापित करने की आवश्यकता है। जो इसे निश्चित रूप से एक निर्भरता बनाता है ।
क्रिस लार्सन

3

यह सबसे आसान और सबसे अच्छा iv'e पाया जाता है। यह Linux / pulseaudio, Mac / coreaudio, और Windows / WASAPI का समर्थन करता है।

import soundfile as sf
import soundcard as sc

default_speaker = sc.default_speaker()
samples, samplerate = sf.read('bell.wav')

default_speaker.play(samples, samplerate=samplerate)

अन्य सुपर उपयोगी सुविधाओं के टन के लिए https://github.com/bastibe/PySoundFile और https://github.com/bastibe/SoundCard देखें ।


इसके लिए जा रहे किसी के लिए बस एक हेडअप (जैसा कि मैं हूं)। सभी रास्प और उनके आश्रितों को रास्पबेरी पाई 1 बी + बनाने के लिए हमेशा के लिए लेते हैं - विशेष रूप से सुन्न।
१६:

पुनश्च: यह रास्पबेरी पाई के लिए काम नहीं किया "NotImplementedError: SoundCard अभी तक linux2 का समर्थन नहीं करता है", और इसे ठीक करने का एक तरीका नहीं निकाल सका। मैं os.system ("mpg123 file.mp3") के साथ जा रहा हूं
pojda

आह, कि बेकार है। मुझे लगता है कि रास्पबेरी पाई कुछ विशेष वातावरण है। शायद अगर आपने जारीकर्ता पर कोई समस्या पोस्ट की है तो आप इसे सुलझा सकते हैं या ठीक कर सकते हैं।
n00p

आगे के विचार पर, शायद समस्या यह है कि आप एक पुराने कर्नेल या पुराने पायथन संस्करण का उपयोग कर रहे हैं। नए अजगर संस्करणों के साथ, त्रुटि को उस तरह नहीं दिखना चाहिए जैसा मुझे लगता है।
15:00 बजे n00p

यह रास्पियन चल रहा है, जो मूल रूप से एक डेबियन स्ट्रेच कांटा है। मैंने हार मान ली और ओएस.सिस्टम तरीका चला गया जो कि अभी ठीक काम कर रहा है। मेरी मदद करने के लिए धन्यवाद!
पोज्डा

2

निम्नलिखित कोड के एनालॉग का उपयोग करके किसी भी 3 पार्टी पुस्तकालयों के बिना ओएस एक्स में ऑडियो खेलना संभव है। कच्चे ऑडियो डेटा wave_wave.writeframes के साथ इनपुट किए जा सकते हैं। यह कोड इनपुट फ़ाइल से 4 सेकंड का ऑडियो निकालता है।

import wave
import io
from AppKit import NSSound


wave_output = io.BytesIO()
wave_shell = wave.open(wave_output, mode="wb")
file_path = 'SINE.WAV'
input_audio = wave.open(file_path)
input_audio_frames = input_audio.readframes(input_audio.getnframes())

wave_shell.setnchannels(input_audio.getnchannels())
wave_shell.setsampwidth(input_audio.getsampwidth())
wave_shell.setframerate(input_audio.getframerate())

seconds_multiplier = input_audio.getnchannels() * input_audio.getsampwidth() * input_audio.getframerate()

wave_shell.writeframes(input_audio_frames[second_multiplier:second_multiplier*5])

wave_shell.close()

wave_output.seek(0)
wave_data = wave_output.read()
audio_stream = NSSound.alloc()
audio_stream.initWithData_(wave_data)
audio_stream.play()

यह आवश्यकता से कहीं अधिक जटिल है - उन्होंने पूछा कि कैसे एक ध्वनि बजाना है, न कि इसे कैसे हेरफेर करना है और फिर इसे खेलना है। मेरा उत्तर इस उत्तर से अनावश्यक 90% को प्रभावित करता है और वास्तव में पूछने वाले को छोड़ देता है - पायथन का उपयोग करके ओएस एक्स में एक फ़ाइल से एक ध्वनि खेल रहा है। stackoverflow.com/a/34984200/901641
ArtOfWarfare

2

PySoundCard की कोशिश करें जो प्लेबैक के लिए पोर्टआडियो का उपयोग करता है जो कई प्लेटफार्मों पर उपलब्ध है। इसके अलावा, यह बहुत सारे चैनलों के साथ "पेशेवर" ध्वनि उपकरणों को पहचानता है।

यहाँ रीडमी से एक छोटा सा उदाहरण:

from pysoundcard import Stream

"""Loop back five seconds of audio data."""

fs = 44100
blocksize = 16
s = Stream(samplerate=fs, blocksize=blocksize)
s.start()
for n in range(int(fs*5/blocksize)):
    s.write(s.read(blocksize))
s.stop()

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

2

इसके अलावा OSX पर - SO से , OSX के afplay कमांड का उपयोग करके :

import subprocess
subprocess.call(["afplay", "path/to/audio/file"])

अद्यतन: यह सब निर्दिष्ट करता है कि कैसे करना है जो ओपी पहले स्थान पर करने से बचना चाहता था। मुझे लगता है कि मैंने इसे यहां पोस्ट किया है क्योंकि ओपी बचना चाहता था वह जानकारी थी जिसकी मुझे तलाश थी। ओह।


महान काम करता है, हालांकि यह खेलते समय निष्पादन को रोक देता है। शायद यह कॉल करने के लिए एक async तरीका है?
प्रैक्सिटेल्स

अच्छे सवाल @Praxiteles संभवतः थ्रेडिंग के साथ। यहाँ देखें कृपया रिपोर्ट करें यदि आपके पास इसके साथ प्रयोग करने का मौका है।
15

ओपी ने स्पष्ट रूप से इसके लिए विकल्प मांगे हैं।
व्हाइटी 04

ओपी / "पायलेट के भीतर से उल्लिखित file.mp3 कमांड निष्पादित करना" के विकल्प की तलाश में था, और सबप्रोसेसिंग अभी भी पायथन के भीतर होता है, है ना। मुझे सही साबित होना है। लेकिन यह शायद इस छोटी सी पोस्ट यहाँ चोट नहीं करता है क्योंकि यह दूसरों की मदद कर सकता है।
मिकीएलएल

@ whitey04 I (अंत में) देखें कि आप क्या कह रहे हैं।
मिकीएलएल

1

Pypi में संगीत में अजगर के लिए मॉड्यूल की एक सूची है। मेरा पसंदीदा jython होगा क्योंकि इसमें संगीत के लिए अधिक संसाधन और पुस्तकालय हैं। पाठ्यपुस्तक से एकल नोट चलाने के लिए कोड के उदाहरण के रूप में :

# playNote.py 
# Demonstrates how to play a single note.

from music import *   # import music library
note = Note(C4, HN)   # create a middle C half note 
Play.midi(note)       # and play it!

1

मैक ओएस मैंने बहुत सारे कोड की कोशिश की लेकिन बस यह मुझ पर काम करता है

import pygame
import time
pygame.mixer.init()
pygame.init()
pygame.mixer.music.load('fire alarm sound.mp3') *On my project folder*
i = 0
while i<10:
    pygame.mixer.music.play(loops=10, start=0.0)
    time.sleep(10)*to protect from closing*
    pygame.mixer.music.set_volume(10)
    i = i + 1

1

playsoundपैकेज का उपयोग कर स्थापित करें :

pip install playsound

उपयोग:

from playsound import playsound
playsound("file location\audio.p3")

0
इसे अपनी लिखी गई पाइथन स्क्रिप्ट के शीर्ष पर रखें:
import subprocess
यदि wav फ़ाइल python स्क्रिप्ट की निर्देशिका में IS है:
f = './mySound.wav'
subprocess.Popen(['aplay','-q',f)
यदि wav फ़ाइल अजगर स्क्रिप्ट की निर्देशिका में नहीं है:
f = 'mySound.wav'
subprocess.Popen(['aplay','-q', 'wav/' + f)
यदि आप aplay के बारे में अधिक जानना चाहते हैं:
man aplay

0

अजगर का उपयोग करके एक अधिसूचना ध्वनि चलाने के लिए, एक संगीत खिलाड़ी को कॉल करें, जैसे vlc। VLC ने मुझे इसके बजाय इसके कमांडलाइन संस्करण, cvlc का उपयोग करने के लिए प्रेरित किया।

from subprocess import call
call(["cvlc", "--play-and-exit", "myNotificationTone.mp3"])

यह डिवाइस पर vlc को प्रीइंस्टॉल्ड करने की आवश्यकता है। लिनक्स पर परीक्षण किया गया (उबंटू 16.04 एलटीएस); पायथन 3.5 रनिंग।


0

ध्वनिदेवता का प्रयास करें

यदि आपके पास pip install sounddeviceअपने टर्मिनल में मॉड्यूल दर्ज नहीं है ।

फिर अपनी पसंद के पायथन लिपि में (मैं जिपर का उपयोग करता हूं), दर्ज करें

import sounddevice as sd

sd.play(audio, sr) आप अजगर के माध्यम से क्या चाहते हैं खेलेंगे

आपके द्वारा इच्छित ऑडियो और नमूना प्राप्त करने का सबसे अच्छा तरीका लिब्रोसा मॉड्यूल है। यदि आपके पास लिब्रोसा मॉड्यूल नहीं है, तो इसे टर्मिनल में दर्ज करें।

pip install librosa

audio, sr = librosa.load('wave_file.wav')

जो भी wav फाइल आप खेलना चाहते हैं, बस यह सुनिश्चित करें कि वह उसी निर्देशिका में हो जो आपकी पायथन लिपि में हो। यह आपको पाइथन के माध्यम से अपनी वांछित wav फ़ाइल चलाने की अनुमति देनी चाहिए

चीयर्स, चार्ली

पुनश्च

एक बार ऑडियो "लिब्रोसा" डेटा ऑब्जेक्ट होने के बाद, पायथन इसे एक सुव्यवस्थित व्यूह के रूप में देखता है। एक प्रयोग के रूप में, एक यादृच्छिक सुन्न सरणी की लंबी (20,000 डेटा बिंदुओं की कोशिश) खेल की कोशिश करें। अजगर को इसे सफेद शोर के रूप में खेलना चाहिए। साउंडदेवीस मॉड्यूल सुन्न सरणियों और सूचियों को भी निभाता है।


यह किया, लेकिन यह कुछ भी नहीं खेल रहा है। यह सिर्फ sd.play कॉल को छोड़ रहा है
Tobias Kolb


0

मैंने हाल ही में अपने म्यूजिक प्लेयर को स्थानीय स्तर पर सभी ऑडियो फाइलों का समर्थन किया है। मैंने vlc python मॉड्यूल और VLC dll फ़ाइलों का उपयोग करने के तरीके का पता लगाकर ऐसा किया। आप इसे देख सकते हैं: https://github.com/elibroftw/music-caster/blob/master/audio/player.py


-1

यदि आप OSX पर हैं, तो आप OSX "play" कमांड को कॉल करने के लिए "os" मॉड्यूल या "सबप्रोसेस" आदि का उपयोग कर सकते हैं। OSX खोल से, यह जैसा दिखता है

खेल "bah.wav"

यह मेरी मशीन पर लगभग आधे सेकंड में खेलना शुरू करता है।


1
मैं इन दोनों तरीकों के लिए वाक्यविन्यास देखने के इच्छुक होंगे।
मिकीएलएल

-1

बस आप इसे cvlc की मदद से कर सकते हैं- मैंने इसे इस तरह से किया है:

import os
os.popen2("cvlc /home/maulo/selfProject/task.mp3 --play-and-exit")

/home/maulo/selfProject/task.mp3। यह मेरे एमपी 3 फ़ाइल का स्थान है। "-प्ले-एंड-एग्जिट" की मदद से आप vlc प्रक्रिया को समाप्त किए बिना फिर से ध्वनि बजा सकेंगे।

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