{"id":52,"date":"2015-01-15T16:59:21","date_gmt":"2015-01-15T13:29:21","guid":{"rendered":"http:\/\/localhost\/~mohsen\/wordpress\/?p=52"},"modified":"2019-05-29T23:43:13","modified_gmt":"2019-05-29T19:13:13","slug":"%da%a9%d8%aa%d8%a7%d8%a8%d8%ae%d8%a7%d9%86%d9%87-portaudio-%d8%b4%d9%85%d8%a7%d8%b1%d9%87-%d8%a7%d9%88%d9%84","status":"publish","type":"post","link":"https:\/\/pahlevanzadeh.net\/?p=52","title":{"rendered":"\u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 PortAudio (\u0634\u0645\u0627\u0631\u0647 \u0627\u0648\u0644)"},"content":{"rendered":"<p>\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0622\u0632\u0627\u062f \u062a\u0639\u062f\u062f \u0648 \u062a\u06a9\u062b\u0631 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u06cc\u06a9\u06cc \u0627\u0632 \u062f\u0644\u0627\u06cc\u0644 \u067e\u06cc\u0634\u0631\u0641\u062a \u0627\u06cc\u0646\u06af\u0648\u0646\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u0647\u0627 \u0634\u062f\u0647 \u0627\u0633\u062a. \u06cc\u06a9\u06cc \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u0639\u0631\u0648\u0641 \u06a9\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u200c\u0647\u0627\u06cc \u0645\u0639\u0631\u0648\u0641\u06cc \u0647\u0645\u0686\u0648\u0646 VLC \u0648 Audacity \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 portaudio \u0645\u06cc\u200c\u0628\u0627\u0634\u062f.<br \/>\n\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0627\u0633\u0645 \u0622\u0646 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u06cc\u06a9 voice handler \u0645\u06cc\u200c\u0628\u0627\u0634\u062f.<a href=\"http:\/\/www.pahlevanzadeh.net\/wp-content\/uploads\/2015\/01\/portaudio_logo.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.pahlevanzadeh.net\/wp-content\/uploads\/2015\/01\/portaudio_logo.png\" alt=\"portaudio_logo\" width=\"77\" height=\"73\" class=\"alignleft size-full wp-image-71\" \/><\/a><br \/>\n\u0647\u0631 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644\u06cc \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0633\u0637\u062d \u0648 \u062d\u062f\u0627\u0642\u0644 \u0648 \u0628\u0627 \u062f\u0648 \u0633\u0647 \u0646\u0648\u0639 \u062f\u0631\u0627\u06cc\u0648\u0631 \u0628\u0627\u06cc\u062f \u0628\u0627 voice \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u062f. \u0646\u06a9\u062a\u0647 \u0645\u0647\u0645 \u0627\u06cc\u0646\u062c\u0627\u0633\u062a \u06a9\u0647 \u0627\u06af\u0631 \u062f\u0631\u0627\u06cc\u0648\u0631 \u06a9\u0627\u0631\u062a \u0635\u062f\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0646\u062f \u0628\u0627\u06cc\u062f \u06a9\u062f \u0645\u0631\u0628\u0648\u0637 \u0646\u06cc\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0646\u062f.<!--more--><\/p>\n<p> \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 multi platform \u0645\u06cc\u200c\u0628\u0627\u0634\u062f \u0648 \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646\u200c\u0645\u0639\u0646\u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0648 \u0645\u0633\u062a\u0642\u0644 \u0627\u0632 \u062f\u0631\u0627\u06cc\u0648\u0631 \u0648 \u0646\u0648\u0639 sound server \u0647\u0645\u0627\u0646\u0646\u062f ALSA \u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0648 Core Audio \u062f\u0631 Mac OS X  \u06cc\u0627 \u0627\u0646\u0648\u0627\u0639 Sound Server \u06a9\u0647 \u062a\u0639\u062f\u0627\u062f\u0634\u0627\u0646 \u062f\u0631 \u0648\u06cc\u0646\u062f\u0648\u0632 \u06a9\u0645 \u0646\u06cc\u0633\u062a \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u062a\u0648\u062c\u0647 \u06a9\u0646\u06cc\u062f.<br \/>\n<a href=\"https:\/\/www.pahlevanzadeh.net\/wp-content\/uploads\/2015\/01\/portaudio-external-architecture-diagram.png\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.pahlevanzadeh.net\/wp-content\/uploads\/2015\/01\/portaudio-external-architecture-diagram-300x113.png\" alt=\"portaudio-external-architecture-diagram\" width=\"300\" height=\"113\" class=\"aligncenter size-medium wp-image-57\" srcset=\"https:\/\/pahlevanzadeh.net\/wp-content\/uploads\/2015\/01\/portaudio-external-architecture-diagram-300x113.png 300w, https:\/\/pahlevanzadeh.net\/wp-content\/uploads\/2015\/01\/portaudio-external-architecture-diagram.png 898w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n\u0627\u06cc\u0646 \u0634\u06a9\u0644 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u0633\u062a\u0642\u0644 \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644\u060c \u062f\u0631\u0627\u06cc\u0648\u0631\u060c Sound Server  \u0648 \u062a\u0648\u0627\u0628\u0639 \u0645\u0631\u0628\u0648\u0637\u0634\u0627\u0646 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u06cc\u06a9 SDK  \u0641\u0631\u0627\u0647\u0645 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0647 \u062a\u0646\u0647\u0627 \u06a9\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631 \u0633\u0627\u062f\u0647 \u06af\u0634\u062a\u0647\u060c \u0628\u0644\u06a9\u0647 \u0632\u0645\u0627\u0646 \u06a9\u062f \u0632\u062f\u0646\u060c \u0648 \u0645\u0627\u0646\u0648\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633 \u0628\u06cc\u0634\u062a\u0631 \u06af\u0634\u062a\u0647 \u0627\u0633\u062a. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0634\u0645\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0633\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 \u0645\u0639\u0631\u0648\u0641 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0646\u0645\u0627\u06cc\u06cc\u062f \u0628\u062f\u0648\u0646 \u0622\u0646\u06a9\u0647 \u062f\u0631 \u06a9\u062f \u0622\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0627\u06cc\u062c\u0627\u062f \u0646\u0645\u0627\u06cc\u06cc\u062f.<br \/>\n\u06f3 \u06af\u0648\u0646\u0647 \u062a\u0648\u0627\u0628\u0639 \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u0631\u0627\u06cc\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f:<br \/>\n\u06f1. \u062a\u0648\u0627\u0628\u0639 Host<br \/>\n\u06f2. \u062a\u0648\u0627\u0628\u0639 Device\u0647\u0627\u06cc \u0635\u062f\u0627<br \/>\n\u06f3. \u062a\u0648\u0627\u0628\u0639 Stream \u0647\u0627\u06cc \u0635\u062f\u0627<\/p>\n<p style=font-size:18px;><strong>\u06f1. \u062a\u0648\u0627\u0628\u0639 host<\/strong><\/p>\n<p>\u0627\u06cc\u0646\u06af\u0648\u0646\u0647 \u062a\u0648\u0627\u0628\u0639 \u0645\u062e\u0635\u0648\u0635 \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u062e\u0627\u0635 \u0645\u06cc\u200c\u0628\u0627\u0634\u0646\u062f \u0648 \u06cc\u06a9 \u0645\u0639\u0645\u0627\u0631\u06cc \u0648. \u06cc\u0627 \u06cc\u06a9 Sound Server \u062e\u0627\u0635 \u0631\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u0646\u0645\u0627\u06cc\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u062a\u0648\u0627\u0628\u0639\u06cc \u06a9\u0647 WMME \u0648 \u06cc\u0627 \u062a\u0648\u0627\u0628\u0639\u06cc \u06a9\u0647 ALSA \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062a\u0648\u0627\u0628\u0639\u06cc \u06a9\u0647 Core Audio \u0631\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u0627\u06cc\u0646\u062f \u0648 \u062f\u0631 \u0627\u06cc\u0646 \u0633\u0637\u062d \u062a\u0648\u0627\u0628\u0639 \u0628\u0627\u0634\u0646\u062f \u06a9\u0647 \u062f\u0631 \u062f\u06cc\u0627\u06af\u0631\u0627\u0645 \u0628\u0627\u0644\u0627 \u0646\u06cc\u0632 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u062c\u0632\u0648 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0647 \u0627\u0632 \u062a\u0648\u0627\u0628\u0639 \u0647\u0633\u062a\u0646\u062f.<br \/>\n\u062f\u0631\u200c\u0648\u0627\u0642\u0639 \u0633\u0637\u062d \u0628\u0627\u0644\u0627\u062a\u0631\u06cc\u0646 \u06af\u0631\u0648\u0647\u200c\u0628\u0646\u062f\u06cc \u062a\u0648\u0627\u0628\u0639 \u0647\u0645\u06cc\u0646 \u062a\u0648\u0627\u06cc\u0639 Host \u0645\u06cc\u200c\u0628\u0627\u0634\u0646\u062f.<br \/>\n\u062a\u0648\u0627\u0628\u0639 Host \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0627 \u06cc\u06a9 \u0627\u0646\u062f\u06cc\u0633 \u0627\u0631\u062c\u0627\u0639 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f: \u0646\u0648\u0639 \u062f\u0627\u062f\u0647\u200c\u0627\u06cc \u0628\u0627 \u0646\u0627\u0645 PaHostApiIndex \u06a9\u0647 \u06cc\u06a9 \u0646\u0648\u0639 integer \u0627\u0633\u062a \u0627\u06cc\u0646 \u0627\u0646\u062f\u06cc\u0633\u200c\u0647\u0627 \u0631\u0627 handle \u0645\u06cc\u200c\u06a9\u0646\u062f.<br \/>\n<strong>\u0646\u06a9\u062a\u0647:<\/strong> \u062f\u0631 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 portaudio \u062a\u0645\u0627\u0645 \u062a\u0648\u0627\u0628\u0639 \u0628\u0627 _Pa \u0634\u0631\u0648\u0639 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u062a\u0645\u0627\u0645 \u0627\u0646\u0648\u0627\u0639 \u062f\u0627\u062f\u0647 \u0628\u0627 Pa \u0628\u062f\u0648\u0646 \u0640 \u0634\u0631\u0648\u0639 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0628\u0647 \u062a\u0648\u0627\u0628\u0639 \u0632\u06cc\u0631 \u062f\u0642\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"lang:c decode:true\">typedef int PaHostApiIndex;\r\nPaHostApiIndex Pa_GetHostApiCount (void );<\/pre>\n<p>\u0628\u0627 \u0646\u0648\u0639 \u062f\u0627\u062f\u0647  PaHostApiIndex \u0628\u06cc\u0646 \u06f0 \u0648 (Pa_GetHostApiCount() &#8211; \u06f1 ) \u06cc\u06a9 \u0645\u062d\u062f\u0648\u062f\u0647 \u0627\u0646\u062f\u06cc\u0633 \u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f. \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u062a\u0645\u0627\u0645 \u062a\u0648\u0627\u0628\u0639 \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633 Host \u062f\u0631 \u0627\u06cc\u0646 \u0628\u0627\u0632\u0647 \u0631\u0627 \u0634\u0645\u0631\u062f.<br \/>\n\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0627 \u062a\u0627\u0628\u0639 Pa_GetDefaultHostApi \u0627\u0646\u062f\u06cc\u0633 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 Host \u0631\u0627 \u0627\u062e\u0630 \u06a9\u0631\u062f.<br \/>\n\u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0631\u0627\u062c\u0639\u200c\u0628\u0647 \u06cc\u06a9 \u062a\u0627\u0628\u0639 Host \u060c \u0647\u0645\u0686\u0648\u0646 \u0646\u0627\u0645 \u0622\u0646 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u0634 \u0647\u0645\u06af\u06cc \u062f\u0631 \u06cc\u06a9 struct \u0628\u0647 \u0646\u0627\u0645 PaHostApiInfo \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0628\u0627 \u062a\u0627\u0628\u0639 \u0632\u06cc\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a struct \u0645\u0630\u06a9\u0648\u0631 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062f:<\/p>\n<pre class=\"lang:c decode:true\">const PaHostApiInfo* \r\nPa_GetHostApiInfo (PaHostApiIndex hostApi);<\/pre>\n<p><strong>\u0646\u06a9\u062a\u0647:<\/strong> \u0646\u0627\u0645\u06af\u0630\u0627\u0631\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u060c \u0628\u0647 \u06af\u0648\u0646\u0647\u200c\u0627\u06cc fork \u0634\u062f\u0647 \u0627\u0632 camel Case \u0645\u06cc\u200c\u0628\u0627\u0634\u062f.<\/p>\n<p style=font-size:18px;><strong>\u06f2. \u062a\u0648\u0627\u0628\u0639 Device\u0647\u0627\u06cc \u0635\u062f\u0627 <\/strong><\/p>\n<p>Device\u200c\u0647\u0627 \u0648\u0627\u0633\u0637\u200c\u0647\u0627\u06cc  \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u06cc\u0627 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f \u062e\u0627\u0635\u06cc \u0631\u0627 \u0627\u0631\u0627\u06cc\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f. Device \u0647\u0627\u06cc \u062f\u0627\u0631\u0627\u06cc \u0646\u0627\u0645\u200c\u0647\u0627 \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u062e\u0627\u0635 \u0627\u0632 sample rate  \u0648 \u06a9\u0627\u0646\u0627\u0644\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u062e\u0631\u0648\u062c\u06cc \u062d\u0645\u0627\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. Portaudio \u062a\u0648\u0627\u0628\u0639\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627\u0631\u0634 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633 \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u067e\u0631\u0633\u200c\u062c\u0648 \u0641\u0631\u0627\u0647\u0645 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<br \/>\n\u06cc\u06a9 Device \u0646\u0634\u0627\u0646\u200c\u062f\u0647\u0646\u062f\u0647 \u06cc\u06a9 endpoint \u06cc \u0645\u06cc\u200c\u0628\u0627\u0634\u062f \u06a9\u0647 \u062a\u0648\u0633\u0637 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0635\u062f\u0627\u06cc \u0628\u0648\u0645\u06cc \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0641\u0631\u0627\u0647\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0648 \u0648\u0627\u0633\u0637 \u0634\u0645\u0627 \u0648 \u0622\u0646 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0645\u062a\u0646\u0627\u0638\u0631 \u0628\u0627 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc\/\u062e\u0631\u0648\u062c\u06cc \u0631\u0648\u06cc \u06cc\u06a9 \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631 \u0648\u0627\u0633\u0637 \u0635\u062f\u0627 \u0645\u06cc\u200c\u0628\u0627\u0634\u062f. \u0647\u0631 \u062a\u0627\u0628\u0639 Host \u0628\u0647 \u0635\u0648\u0631\u062a \u063a\u06cc\u0631 \u0645\u0633\u062a\u0642\u0644 \u0639\u0645\u0644 \u0645\u06cc\u200c\u0646\u0645\u0627\u06cc\u062f\u060c \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u06cc\u06a9 \u067e\u0648\u0631\u062a \u0641\u06cc\u0632\u06cc\u06a9\u06cc \u0635\u062f\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 Device \u0647\u0627\u06cc \u062f\u0631 \u0645\u0639\u0631\u0636 \u06af\u0630\u0627\u0634\u062a\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u062a\u0648\u0627\u0628\u0639 \u0645\u062e\u062a\u0644\u0641 Host \u0642\u0627\u0628\u0644 \u0622\u062f\u0631\u0633 \u062f\u0647\u06cc \u0634\u0648\u0646\u062f.<br \/>\n\u06cc\u06a9 Device \u06cc\u06a9 \u0646\u0627\u0645 \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0647 \u06cc\u06a9 \u062a\u0627\u0628\u0639 Host \u0645\u0631\u0628\u0648\u0637 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0648 \u0628\u0627\u0644\u0627\u062a\u0631\u06cc\u0646 \u062a\u0639\u062f\u0627\u062f \u06a9\u0627\u0646\u0627\u0644\u200c\u0647\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc\/\u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u0646\u0645\u0627\u06cc\u062f. \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 portaudio  \u0628\u0631\u0627\u06cc \u0647\u0631 Device \u0686\u0646\u062f\u06cc\u0646 sample rate \u0648 \u0645\u0642\u062f\u0627\u0631\u0647\u0627\u06cc \u0646\u0647\u0641\u062a\u0647 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062a\u0648\u0636\u06cc\u0647 \u0634\u062f\u0647 \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.\u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u0647\u0645 \u0622\u0648\u0631\u062f\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062c\u0632\u06cc\u06cc\u200c \u0648  \u0628\u06cc\u0634\u062a\u0631 \u0631\u0627\u062c\u0639\u200c\u0628\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc device \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062a\u0627\u0628\u0639 Pa_IsFormatSupported \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u0627\u06cc\u06cc\u062f.<br \/>\n\u0627\u06af\u0631\u0686\u0647 \u0647\u0631 Device \u0628\u0647 \u0637\u0648\u0631 \u0645\u0641\u0647\u0648\u0645\u06cc \u0645\u0627\u0644 \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0648\u064a\u0698\u0647 Host \u0645\u06cc\u200c\u0628\u0627\u0634\u062f\u060c \u0628\u06cc\u0634\u062a\u0631 \u062a\u0648\u0627\u0628\u0639 portaudio \u0648 \u0633\u0627\u062e\u062a\u0645\u0627\u0646 \u062f\u0627\u062f\u0647 \u0622\u0646 \u0627\u0631\u062c\u0627\u0639 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 global \u0627\u0632 Device \u0647\u0627 \u0627\u0631\u062c\u0627\u0639 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<br \/>\n\u0627\u0646\u062f\u06cc\u0633 \u0646\u0648\u0639 PaDeviceIndex \u06a9\u0647 \u0645\u0633\u062a\u0642\u0644 \u0627\u0632 Host \u0647\u0627 \u0645\u06cc\u200c\u0628\u0627\u0634\u062f \u060c \u06cc\u06a9 \u0639\u062f\u062f integer \u0628\u06cc\u0646 \u06f0 \u0648 (Pa_GetDeviceCount() &#8211; \u06f1) \u0645\u06cc\u200c\u0628\u0627\u0634\u062f. \u062a\u0627 \u062d\u062f\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0627\u0645\u0631 \u062f\u0644\u0627\u06cc\u0644 \u062a\u0627\u0632\u06cc\u062e\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 \u0627\u0635\u0644 \u0642\u0636\u06cc\u0647 \u0622\u0633\u0627\u0646\u200c\u0633\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0627\u0628\u0639 Host \u0627\u0632 \u062a\u0648\u0627\u0628\u0639 Device \u062c\u062f\u0627 \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u0648 \u0628\u0647 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u06a9\u0627\u0631\u06cc \u0646\u062f\u0627\u0631\u0646\u062f.<br \/>\n\u0628\u0631\u0627\u06cc \u0645\u062d\u0633\u0648\u0628 \u062f\u0627\u0634\u062a\u0646 \u062a\u0648\u0627\u0628\u0639 Device \u0628\u0647 \u0647\u0646\u06af\u0627\u0645 \u0634\u0645\u0627\u0631\u0634\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631 \u0632\u06cc\u0631 \u0628\u0647\u0631\u0647 \u0628\u0631\u062f:<\/p>\n<pre class=\"lang:c decode:true\">PaHostApiInfo::deviceCount \u2013 1;<\/pre>\n<p>\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0631\u0627\u062c\u0639\u200c\u0628\u0647 Device\u200c \u0647\u0627 \u0647\u0645\u06af\u06cc \u062f\u0631 \u06cc\u06a9 struct \u0628\u0647 \u0646\u0627\u0645 PaDeviceInfo \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f. \u0634\u0645\u0627 \u0628\u0627  \u0635\u062f\u0627 \u06a9\u0631\u062f\u0646 \u062a\u0627\u0628\u0639 \u0632\u06cc\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0631\u0627\u062c\u0639\u200c\u0628\u0647 \u06cc\u06a9 Device \u0631\u0627 \u0627\u062e\u0630 \u0646\u0645\u0627\u06cc\u06cc\u062f:<\/p>\n<pre class=\"lang:c decode:true\">const PaHostApiInfo* \r\nPa_GetHostApiInfo (PaHostApiIndex hostApi);<\/pre>\n<p style=font-size:18px;><strong>\u06f3. \u062a\u0648\u0627\u0628\u0639 Stream \u0647\u0627\u06cc \u0635\u062f\u0627<\/strong><\/p>\n<p>\u06cc\u06a9 Stream  \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u0641\u0639\u0627\u0644 \u0645\u06cc\u0627\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0635\u062f\u0627 \u0648 Device \u0635\u062f\u0627 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f. \u06f3 \u0639\u0646\u0635\u0631 \u062f\u0631 Stream \u0647\u0627 \u0646\u0642\u0634 \u0627\u0633\u0627\u0633\u06cc \u0631\u0627 \u0628\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 Stream \u0647\u0627 \u0628\u0631 \u0631\u0648\u06cc \u0622\u0646\u200c\u0647\u0627 \u0639\u0645\u0644 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f:<br \/>\n\u06f1. Sample Rate<br \/>\n\u06f2. Sample Format<br \/>\n\u06f3. Buffer Size <\/p>\n<p><strong>\u0631\u0648\u0634\u200c\u0647\u0627\u06cc I\/O:<\/strong><br \/>\nportaudio \u062f\u0648 \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u0627\u0631\u062a\u0628\u0627\u0637  \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0635\u062f\u0627 \u0645\u06cc\u0627\u0646 \u06cc\u06a9 open Stream \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0627\u0631\u0627\u06cc\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a:<br \/>\n\u06f1. callback function<br \/>\n\u06f2. read\/write<br \/>\n\u062f\u0631 \u0631\u0648\u0634  \u0627\u0648\u0644\u060c \u06cc\u06a9 \u062a\u0627\u0628\u0639 callback \u063a\u06cc\u0631\u0647\u0645\u0632\u0645\u0627\u0646 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0635\u062f\u0627 \u06cc\u0627 \u0635\u062f\u0627\u06cc\u06cc \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0628\u0627\u0634\u062f \u062a\u0648\u0633\u0637 portaudio \u0635\u062f\u0627 \u0632\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u06a9\u0627\u0631\u0628\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0647\u0631 \u0686\u0647 \u200c\u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u062f \u0628\u0646\u0648\u06cc\u0633\u062f. \u062f\u0631 \u0634\u0645\u0627\u0631\u0647 \u0628\u0639\u062f \u0628\u06cc\u0634\u062a\u0631 \u062a\u0648\u0636\u06cc\u062d \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f.<br \/>\n\u0631\u0648\u0634 \u062f\u0648\u0645 \u062f\u0631\u200c\u0648\u0627\u0642\u0639 \u06cc\u06a9 \u0631\u0648\u0634 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0628\u0631\u0627\u06cc \u0631\u0648\u0634 \u0627\u0648\u0644 \u062f\u0631 \u062d\u0627\u0644\u0627\u062a\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc callback functions \u0631\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u06a9\u0646\u062f \u0648 \u06cc\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u06a9\u0645\u062a\u0631\u06cc\u0646 \u0639\u06a9\u0633\u200c\u0627\u0644\u0639\u0645\u0644 \u0627\u062d\u062a\u0645\u0627\u0644\u06cc \u0627\u062d\u062a\u06cc\u0627\u062c \u0646\u062f\u0627\u0631\u0646\u062f \u0645\u0641\u06cc\u062f \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<br \/>\n<strong>\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0648 \u0628\u0633\u062a\u0646 Stream:<\/strong><br \/>\n\u0628\u0631\u0627\u06cc \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 Steram \u0628\u0627\u06cc\u062f \u062a\u0627\u0628\u0639 Pa_OpenStream \u0631\u0627 \u0635\u062f\u0627 \u0632\u062f. \u062a\u0627\u0628\u0639 \u0645\u0630\u06a9\u0648\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0645\u06cc\u200c\u0628\u0627\u0634\u062f:<\/p>\n<pre class=\"lang:c decode:true\">PaError Pa_OpenStream    (       PaStream **     stream,\r\n                const PaStreamParameters *      inputParameters,\r\n                const PaStreamParameters *      outputParameters,\r\n                double          sampleRate,\r\n                unsigned long   framesPerBuffer,\r\n                PaStreamFlags   streamFlags,\r\n                PaStreamCallback *      streamCallback,\r\n                void *          userData\r\n        )<\/pre>\n<p>\u0647\u0645\u0686\u06cc\u0646\u06cc\u0646 \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0646 \u06cc\u06a9 Stream \u0628\u0627\u06cc\u062f \u0627\u0632 \u062a\u0627\u0628\u0639 Pa_CloseStream \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f \u06a9\u0647 \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u0644\u06cc \u0622\u0646 \u062f\u0631 \u0632\u06cc\u0631 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<pre class=\"lang:c decode:true\">PaError\r\nPa_CloseStream ( PaStream *stream);<\/pre>\n<p><strong>\u062a\u0648\u0627\u0646\u0627\u06cc\u06cc\u200c\u0647\u0627\u06cc\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 portaudio:<\/strong><\/p>\n<ul>\n<li style=\"margin-right: 30px;\">\n<p>\n\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0648 \u0628\u0647 unload \u06a9\u0631\u062f\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647. <\/p>\n<\/li>\n<li style=\"margin-right: 30px;\">\n<p>\n\u0628\u0631\u0634\u0645\u062f\u0631\u0646 \u062a\u0648\u0627\u0628\u0639 \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633 Host <\/p>\n<\/li>\n<li style=\"margin-right: 30px;\">\n<p>\n\u0628\u0631\u0634\u0645\u0631\u062f\u0646 Device \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u06cc\u0627 \u062f\u0631 \u0633\u0637\u062d \u0639\u0645\u0648\u0645\u06cc\u060c \u0648 \u06cc\u0627 \u062f\u0631 \u062f\u0631\u0648\u0646 \u0647\u0631 \u06cc\u06a9 \u0627\u0632\u062a\u0648\u0627\u0628\u0639 \u0645\u06cc\u0632\u0628\u0627\u0646 <\/p>\n<\/li>\n<li style=\"margin-right: 30px;\">\n<p>\n\u06a9\u0634\u0641 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0648 \u06cc\u0627 Device \u0647\u0627\u06cc  \u062a\u0648\u0635\u06cc\u0647 \u0634\u062f\u0647 \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Device <\/p>\n<\/li>\n<li style=\"margin-right: 30px;\">\n<p>\n\u06a9\u0634\u0641 \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc Device \u0627\u0632 \u062c\u0645\u0644\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc Sample Format \u0648 Sample Rate <\/p>\n<\/li>\n<li style=\"margin-right: 30px;\">\n<p>\n\u0627\u06cc\u062c\u0627\u062f \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062c\u0631\u06cc\u0627\u0646 \u0627\u0632 Audio Stream  \u0628\u0647 Device  \u0648 \u06af\u0631\u0641\u062a\u0646 Audio Stream \u0627\u0632 Device <\/p>\n<\/li>\n<li style=\"margin-right: 30px;\">\n<p>\n\u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0646\u0633\u062e\u0647 \u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062e\u0637\u0627.<\/p>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0622\u0632\u0627\u062f \u062a\u0639\u062f\u062f \u0648 \u062a\u06a9\u062b\u0631 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u06cc\u06a9\u06cc \u0627\u0632 \u062f\u0644\u0627\u06cc\u0644 \u067e\u06cc\u0634\u0631\u0641\u062a \u0627\u06cc\u0646\u06af\u0648\u0646\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u0647\u0627 \u0634\u062f\u0647 \u0627\u0633\u062a. \u06cc\u06a9\u06cc \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u0639\u0631\u0648\u0641 \u06a9\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u200c\u0647\u0627\u06cc \u0645\u0639\u0631\u0648\u0641\u06cc \u0647\u0645\u0686\u0648\u0646 VLC \u0648 Audacity \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 portaudio \u0645\u06cc\u200c\u0628\u0627\u0634\u062f. \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0627\u0632 \u0627\u0633\u0645 \u0622\u0646 \u067e\u06cc\u062f\u0627\u0633\u062a\u060c \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u06cc\u06a9 voice handler \u0645\u06cc\u200c\u0628\u0627\u0634\u062f. \u0647\u0631 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644\u06cc \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0633\u0637\u062d \u0648 \u062d\u062f\u0627\u0642\u0644 \u0648 &hellip; <a href=\"https:\/\/pahlevanzadeh.net\/?p=52\" class=\"more-link\">\u0627\u062f\u0627\u0645\u0647 \u062e\u0648\u0627\u0646\u062f\u0646 <span class=\"screen-reader-text\">\u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 PortAudio (\u0634\u0645\u0627\u0631\u0647 \u0627\u0648\u0644)<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[110,2,67,109],"tags":[15,18,17,14,6,16],"_links":{"self":[{"href":"https:\/\/pahlevanzadeh.net\/index.php?rest_route=\/wp\/v2\/posts\/52"}],"collection":[{"href":"https:\/\/pahlevanzadeh.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pahlevanzadeh.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pahlevanzadeh.net\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/pahlevanzadeh.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=52"}],"version-history":[{"count":25,"href":"https:\/\/pahlevanzadeh.net\/index.php?rest_route=\/wp\/v2\/posts\/52\/revisions"}],"predecessor-version":[{"id":907,"href":"https:\/\/pahlevanzadeh.net\/index.php?rest_route=\/wp\/v2\/posts\/52\/revisions\/907"}],"wp:attachment":[{"href":"https:\/\/pahlevanzadeh.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=52"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pahlevanzadeh.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=52"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pahlevanzadeh.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=52"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}