دوستان سلام
می دونم مثالهای مختلفی برای این موضوع هست توی اینترنت خیلی گشتم ودیدم
اما سئوال من اینه که روش کار در سیلورلایت چجوریه که بتونه وب کم وصدای یک کلاینت رو در یه سیستم دیگه بگیره وبشنوه
ممنون
دوستان سلام
می دونم مثالهای مختلفی برای این موضوع هست توی اینترنت خیلی گشتم ودیدم
اما سئوال من اینه که روش کار در سیلورلایت چجوریه که بتونه وب کم وصدای یک کلاینت رو در یه سیستم دیگه بگیره وبشنوه
ممنون
اول باید تصویر و صدا رو از کلاینت یک بگیرید. برای گرفتن تصویر قبلا تاپیک بوده و براش یک پروژه Sample گذاشتم. برای صدا هم اگه مشکلی بود بپرسید.
بعد باید اطلاعات رو به صورت تیکه تیکه که اصطلاحا میگیم chunk بگیرید(برای مثال شما 1 ثانیه توصیر و صدا رو دریافت می کنید و به stream مربوطه میگیم یک chunk) سپس باید این چانک ها رو با یک فرمت مناسب encode کنید. مثلا H264.
در قدم بعدی باید داده رو به یک media server بفرستید. اینکار از طریق سرویس و یا سوکت می تونید انجام بدید. سوکت سرعت بالاتری داره اما سرویس راحت تره. حالت حرفه ای استفاده از سوکته.
سرور مربوط ابتدا داده ها رو بافر میکنه. و هر داده رو به سمت کلاینت میفرسته(سوکت یا سرویس).
کلاینت گیرنده کار گرفتن chunk ها به صورت stream و decode و پخش اونها رو به عهده داره.
در مورد chunk ها اونها رو شماره گذاری کنید تا ترتیب اونها از بین نره و به ترتیب درست به کلاینت برسه. چون اگه async کار کنید ممکنه چانک دوم زودتر از اولی برسه. البته میشه تا اولی نرسیده دومی ارسال نشه اما این مستلزم فرستادن Ack از سوی گیرنده است که موجب کاهش سرعت میشه.
بهتره از ارسال Async به همراه فرستادن Ack غیرهمزمان استفاده کنید.
اجازه بدید قسمت به قسمت بریم جلو
من مثال شما رو دانلود کردم وفهمیدم تصویر چگونه گرفته میشه
اما سئوال اینه چکونه صدا رو همزمان دریافت کنیم که مرتبط با تصویر باشه واصلاحا بین صدا وتصویر فاصله نیافته؟
این قسمت که فرمودید:
"بعد باید اطلاعات رو به صورت تیکه تیکه که اصطلاحا میگیم chunk بگیرید(برای مثال شما 1 ثانیه توصیر و صدا رو دریافت می کنید و به stream مربوطه میگیم یک chunk) سپس باید این چانک "
متوجه نشدم اگه با یه مثال توضیح بدید ممنون میشم
دوستان منتظرم ممنون
سلام
برای پخش زنده تصاویر اگه ممکن هست بگید چه اقداماتی باید انجام بشه