PDA

View Full Version : تبدیل ارایه از بایت به صوت؟



c0mmander
چهارشنبه 14 خرداد 1393, 03:59 صبح
سلام

از چه طریقی میتونم ارایه از بایت رو که از میکروفن خوندم رو به بدون ذخیره کردن مستقیما پخش کنم؟

ROSTAM2
چهارشنبه 14 خرداد 1393, 08:12 صبح
خوب باید توضیح بدید اصلا چجوری هست این بایت ها تا بشه کمک کرد در ضمن اگه می شه طریقه استفاده از میکروفون برای ورود داده به سیستم توضیح بدبد ممنون می شم ،ولی در کل برای پخش صوت از بایت از کلاس Stream استفاده می شه!

aliagamon
چهارشنبه 14 خرداد 1393, 10:40 صبح
فکر کنم برای buffer شما باید تو MemoryStream بنویسیدش ...

c0mmander
چهارشنبه 14 خرداد 1393, 15:46 عصر
اول از همه یک تشکر ویژه از دوستان گلم که دقیقا با قرار دادن Streamمشکلم حل شد..
خوب باید توضیح بدید اصلا چجوری هست این بایت ها تا بشه کمک کرد در ضمن اگه می شه طریقه استفاده از میکروفون برای ورود داده به سیستم توضیح بدبد ممنون می شم ،ولی در کل برای پخش صوت از بایت از کلاس Stream استفاده می شه! کد ها در حقیقت برای mono For android هستند اما کد هایی که برای بافر کردن استفاده میشوند:
protected async Task StartRecorderAsync () { endRecording = false; isRecording = true; RaiseRecordingStateChangedEvent (); audioBuffer = new Byte[100000]; audioRecord = new AudioRecord ( // Hardware source of recording. AudioSource.Mic, // Frequency 11025, // Mono or stereo ChannelIn.Mono, // Audio encoding Android.Media.Encoding.Pcm16bit, // Length of the audio clip. audioBuffer.Length ); این کد های سطح پایین برای ذخیره داده صوتی هست با استفاده از کدک pcm و با فرکانس 11025 بصورت غیر استریو تعریف کردم. برای پخش کردن هم اول با توجه به اینکه باید از کلاس استریم استفاده میشد اومدم در سازنده پخش کننده نوع استریم رو قرار دادم:
audioTrack = new AudioTrack ( // Stream type Android.Media.Stream.Music, // Frequency 11025, // Mono or stereo ChannelConfiguration.Mono, // Audio encoding Android.Media.Encoding.Pcm16bit, // Length of the audio clip. buffer.Length, // Mode. Stream or static. AudioTrackMode.Stream); و در نهایت با قرار دادن بافر پخش شد
audioTrack.Play (); await audioTrack.WriteAsync (buffer, 0, buffer.Length); __________________________________________________ ______________ در کل میخواستم از طریق وای فای بدون اتصال به اینترنت صوت رو انتقال بدم . یک نمونه خوب هم پیدا شد که متاسفانه از Microsoft.DirectX.DirectSound استفاده شده بود و کیفیت مناسب رو نداشت. البته چندتا سوال هم هست که بعدا داخل تایپک چدا باید بپرسم ممنونم از شما.