Ramtin

مدیر کل
  • تعداد ارسال ها

    229
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    122

آخرین بار برد Ramtin در 22 تیر

Ramtin یکی از رکورد داران بیشترین تعداد پسند مطالب است!

اعتبار در سایت

440 بی نظیر

درباره Ramtin

  • درجه
    مدیر کل
  • تاریخ تولد 24 دی 1373

اطلاعات تماس

  • آدرس تارنما
    https://www.win-nevis.com
  • حساب مایکروسافت
    Ramtinak@live.com
  • مرورگر
    Google Chrome
  • شماره تماس
    09174314006
  • تلگرام
    https://telegram.me/ramtinak

اطلاعات نمایه

  • جنسیت
    آقا
  • مکان
    کازرون
  • علایق
    برنامه نویسی سی شارپ، موزیک، فیلم
  • نام توسعه دهندگی
    Iran
  • سیستم عامل کامپیوتر
    Windows 10
  • سیستم عامل موبایل
    Android
  • موبایل
    Other

آخرین بازدید کنندگان نمایه

285 بازدید کننده نمایه
  1. سلام، من همین روش رو برای سورنا به کار بردم و توی موبایل هم کار میکنه و درست هست و حتی ویدیو هم در پس زمینه پخش میشه. ساده ترین راه هم همینه. موفق باشید.
  2. سلام وقت بخیر، از اونجا که برای دوست عزیزمون بهروز برای پخش موزیک یا ویدیو در پس زمینه مشکل ایجاد شده، فکر کردم این آموزش رو بذارم برای دوستانی که مشکلی مشابه دارند. نکته: من ویژوال استودیو روی کامپیوترم ندارم پس شاید بعضی از کدهام اشتباه تایپی داشته باشند، پس خودتون با Intellisense ویژوال استودیو اون رو درست کنید. خب پروژه جدیدی از نوع یکپارچه با ورژن SDK نسخه 10.0.14393 به نام WN_BackgroundPlayback ایجاد نمایید. درون این پروژه یک کلاس اضافه کنید و کدهای زیر رو درون اون بنویسید: using Windows.Media.Playback; // in code az sample e MS copy shode namespace WN_BackgroundPlayback { class PlaybackService { // sakhte intanse az class static PlaybackService instance; public static PlaybackService Instance { get { if (instance == null) instance = new PlaybackService(); return instance; } } // har appi mitone ye MediaPlayer dashte bashe ke dar tamame safhat mitone azash estefade kone public MediaPlayer Player { get; private set; } public PlaybackService() { // yadeton bashe hamishe AutoPlay ro false bezarin ta moshkeli baraton pish nayad Player = new MediaPlayer {AutoPlay = false}; } } } سپس این کلاس رو ذخیره کنید و آنرا ببندید. حال فایل Package.appxmanifest را با CodeViewer باز کنید (اگه اشتباه نکنم روش راست کلیک که کنید دومین گزینه باید این فایل رو بصورت xml براتون باز کنه) خب اینجا درون تگِ Capabalities کد زیر را بنویسید: <uap3:Capability Name="backgroundMediaPlayback" /> که کد کلی باید بدین صورت باشد: <Capabilities> <Capability Name="internetClient" /> <uap3:Capability Name="backgroundMediaPlayback" /> </Capabilities> حال صفحه را ذخیره و آنرا ببندید. درون صفحه MainPage یک کنترل MediaPlayerElement قرار دهید (این کنترل از SDK 14393 به بعد قابل استفاده است!!) و یک دکمه که خاصیت Click را برای آن تعریف کرده باشید اضافه کنید: <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Button x:Name="btnPlay" Content="Play" Click="btnPlay_Clicked" /> <MediaPlayerElement x:Name="mediaPlayer" Grid.Row="1" AreTransportControlsEnabled="True" AutoPlay="False" /> </Grid> اکنون صفحه کدنویسی سی شارپ MainPage رو باز کنید و فضای نامی زیر رو به قسمت فضاهای نامی اضافه کنید: using Windows.Media.Playback; بالای کُنستراکتور (public MainPage...) این کد رو بنویسید: public MediaPlayer Player => PlaybackService.Instance.Player; حالا درون کُنستراکتور رویداد loadedـه صفحه را ایجاد نمایید: public MainPage() { InitializeComponent(); Loaded += MainPage_Loaded; } تابع آن: private void MainPage_Loaded(object sender, RoutedEventArgs e) { mediaPlayer.SetMediaPlayer(Player); } اکنون درون تابع رویداد کلیک دکمه کدهای زیر را بنویسید: var item = new MediaPlaybackItem(MediaSource.CreateFromUri(new Uri("http://dl.songdl.xyz/sOng/Album/Saman.Jalili-Ch.Haale.Khoobie/Saman.Jalili_06-Raahat.Maro.mp3"))); Player.Source = item; دقیقا یادم نیست برای اینکه از اینا استفاده کنید چه فضاهای نامی ای نیاز هست که اضافه کنید. اگر دیدید که رنگ زیر کلمات قرمز شد موس را چند ثانیه روی آن نگه دارید ویژوال استودیو به شما یک لامپ نشان میدهد که چنانچه روی آن کلیک کنید، یک لیست نشان خواهد داد که کزینه اول را در این لیست انتخاب کنید تا فضای نامی به صفحه اضافه شود. خب تمام شد ! پروژه را اجرا کرده و آنرا امتحان نمایید. نکات اضافی: برای نمایش آهنگ در SMTC نیاز هست که مقدار SMTCـه MediaPlayer را از آن گرفته و آنرا بروز رسانی نمایید.(از اینجا به بعد کپی شده از سورناست!) برای اینکار کافی است که شما در بالای کنستراکتور کد زیر را بنویسید: public SystemMediaTransportControls smtc = null; سپس درون Loaded کد زیر را بعد از کدی که در بالا نوشتید، درون try..catch بنویسید: try { smtc = Player.SystemMediaTransportControls; } catch {} با این کار SMTC پلیر را میگیریم. حال تابع زیر را جهت بروز رسانی کردن SMTC بنویسید public void UpdateSMTC(string singer, string title, string cover) { if (smtc == null) return; smtc.PlaybackStatus = MediaPlaybackStatus.Playing; smtc.DisplayUpdater.Type = MediaPlaybackType.Music; smtc.DisplayUpdater.MusicProperties.AlbumTitle = smtc.DisplayUpdater.MusicProperties.Title = title; smtc.DisplayUpdater.MusicProperties.AlbumArtist = smtc.DisplayUpdater.MusicProperties.Artist = singer; if (!string.IsNullOrEmpty(cover)) smtc.DisplayUpdater.Thumbnail = RandomAccessStreamReference.CreateFromUri(new System.Uri(cover)); smtc.DisplayUpdater.Update(); } حال درون رویداد کلیک بعد از کد پلی کردن، برای بروز رسانی آهنگ کافیست اینگونه عمل نمایید: UpdateSMTC("Saman Jalili", "Rahat Maro", "http://dl.songdl.xyz/sOng/Album/Saman.Jalili-Ch.Haale.Khoobie/Saman.Jalili-Che.Haale.Khoobie.jpg"); به همین سادگی! موفق باشید. منبع هم که همیشه وین نویس هست!
  3. سلام، بصورت پیشفرض Encoding 1252 در باندل نهایی افزوده نمیشه. برای اینکار Propertiesـه پروژه رو باز کنید و به تب Android Options بروید. در این صفحه از تب Linker رو انتخاب کنید و گزینه Linking رو روی Sdk Assemblies Only رو انتخاب کنید. در قسمت Additional supported encodings هم گزینه west رو تیک بزنید. همین! موفق باشید.
  4. c#

    سلام، به این کار File Association میگن. توی برنامه های تحت دسکتاپ باید در رجیستری این کار رو انجام داد که برنامه باید دسترسی ادمین (Run As Admin) داشته باشه. خوشبختانه توی UWP زیاد کاری نمیخواد انجام داد! برای اینکار کافیه یک Declaration از نوع File Type Associations ایجاد کنید و فرمت هایی که می خواهید رو بنویسید. سپس باید در فایل App.xaml.cs تابع OnFileActivated رو بازنویسی کنید و فایل هایی که با برنامه شما باز میشن رو هندل کنید. اگه اشتباه نکنم شما فقط یک آیکون می تونید برای این فایل ها بذارید. کلا کاریه که پلیرها انجام میدن. ساده شده میتونید پروژه AssociationLaunching رو در سمپل های مایکروسافت نگاه کنید. اگه نیاز به آموزش داشتید بگید تا بذارم. موفق باشید.
  5. سلام آموزشش قبلا گذاشته شده: موفق باشید.
  6. سلام، با عرض پوزش بابت دیر پاسخ دادن، توی ویندوز 10(چه موبایل چه دسکتاپ) چیزی به نام ساخت Setup نداریم. کلا توی پلتفرم های موبایل پکیج باندل(bundle package) ایجاد میشه که توی ویندوز 10 هم این کار باید انجام شه. فایل نهایی با فرمت appx و appxbundle خواهد بود. Deploy در اصل برنامه رو میاد روی گوشی یا کامپیوتر نصب و اجرا می کنه. اینم آموزش تصویری ساخت باندل: https://www.win-nevis.com/Projects/Tutorial/Video/WN%20Creating%20Bundle%20in%20UWP.mp4 لینک کمکی: http://uploadboy.com/zi4w2lconrqh/1179/mp4 موفق باشید.
  7. سلام، آموزش تصویری به دو صورت آماده شده: 1. فایل exe که به نظرم بهتر هست همین رو دانلود کنید(هر جا دیدید فیلم Pause شد دکمه Space رو بزنید تا ادامه فیلم رو ببینید): http://uploadboy.com/qts6dhjcgesm/1099/zip 2. فایل MP4: http://uploadboy.com/uqo0hzmjk91d/1099/rar موفق باشید.
  8. سلام، وقت بخیر، تا جایی که من میدونم اسم فونت یکان B Yekan هست نه Yekan! برای استفاده از فونت ها یا هر چیزی که داخل خود پروژه هست، باید مقدار ms-appx:/// را قبل از آدرس اون بنویسیم. مثلا شما نوشتی: head.Append("@font-face {" + "font-family: 'yekan'" + " url('/other/yekan.ttf') format('ttf');" + "}" + "h1, h2, h3, h4, h5, h6, p{font-family:yekan;}" + "p{font-size{15px;}" + "h1{font-size:25px;}"); که اینجا باید yekan ها به B Yekan و /other/yekan.ttf به ms-appx:///other/yekan.ttf تغییر نام پیدا کنن. نکته: من برای فونت یکان پوشه other رو توی روت پروژه ام ساختم. پس کد بالا میشه: head.Append("@font-face {" + "font-family: 'B Yekan'" + " url('ms-appx:////other/yekan.ttf') format('ttf');" + "}" + "h1, h2, h3, h4, h5, h6, p{font-family:B Yekan;}" + "p{font-size{15px;}" + "h1{font-size:25px;}"); فونت یکان پیوست شد. موفق باشید. yekan.zip
  9. آموزش تبدیل گفتار به نوشتار در ویندوز یکپارچه. کتاب الکترونیک آموزش پیوست شد. پروژه نمونه را می توانید از گیتهاب دانلود نمایید: https://github.com/ParseDev/WitAiUWP منبع: وین نویس WitAi Speech Recognition.pdf
  10. سلام، این کاری که الان من اینجا انجام دادم شدنی هست اما نمیدونم که آیا بابت کلیکی که میشه پولی میدن یا خیر! معمولا تمامی تبلیغاتی که نشون داده میشه داخل Tagـه Html ای به نام iFrame هست. شما کافی هست که این تگ رو پیدا کنید و مقدار srcـه اون رو بگیرید و داخل کنترل WebView به اون Navigate بشید. همین! روش انجام کار: مثلا وین نویس از Anetwork استفاده میکنه. روی یکی از تبلیغات راست کلیک کنید و روی Inspect کلیک کنید. بعد از زدن این گزینه صفحه ای مانند زیر برای شما باز خواهد شد: تگ iframe را می توانید در این قسمت ببینید، روی آن راست کلیک کرده، سپس Copy را بزنید و روی Copy Element کلیک کنید. برنامه Notepad را باز کنید و متن کپی شده را در آن Paste کنید. سپس آدرسی که درون src="" نوشته شده را کپی کنید: تگ iframe: <iframe src="https://ad.anetwork.ir/showad/c.php?adwidth=300&adheight=100&aduser=1470500719&awrey=41" height="100" width="300" frameborder="0" scrolling="no" style="background: #FFF url(https://static-cdn.anetwork.ir/img/loader.gif) no-repeat center;"></iframe> آدرس کپی شده: https://ad.anetwork.ir/showad/c.php?adwidth=300&adheight=100&aduser=1470500719&awrey=41 حالا پروژه جدیدی بسازید و داخل صفحه کنترل WebView قرار بدید: <WebView x:Name="webView" Width="300" Height="60" NavigationStarting="webView_NavigationStarting"/> صفحه کدنویسی را باز کنید و بالای Constructorـه صفحه این دو کد رو بنویسید: /// <summary> /// addresse tablighemon /// </summary> const string adsAddress = "https://ad.anetwork.ir/showad/c.php?adwidth=300&adheight=100&aduser=1470500719&awrey=11"; /// <summary> /// addrese track kardane ye tabligh dakhele aNetwork injorie: /// http://ad-track.anetwork.ir/nclick/g/yLNWEb9QfpbTf6GSVHwhpLg55KGn8X1Pk1wZJgCn176taRQyB7uyaVpNnUxxUfctL/aHR0cDovL3B1Ymxpc2hlcmkuaXI= /// </summary> const string trackAddressContains = "ad-track.anetwork.ir"; آدرس اول آدرس تبلیغ اولیه ماست(هر بار که این آدرس باز میشود تبلیغ تغییر می کند. حتی اگر زمانی که کاربر موس را روی تبلیغ برده و روی علامت ضربدر آن کلیک کند، تبلیغ عوض خواهد شد.) آدرس دوم آدرس تِرَک کردن هست، برای مثال روی تبلیغ راست کلیک کنید و Copy link address را بزنید تا آدرسی مانند زیر ببنید: http://ad-track.anetwork.ir/nclick/g/yLNWEb9QfpbTf6GSVHwhpLg55KGn8X1Pk1wZJgCn176taRQyB7uyaVpNnUxxUfctL/aHR0cDovL3B1Ymxpc2hlcmkuaXI= کل آدرس برای ما مهم نیست ما فقط قسمت را می خواهیم که بین http:// هست و اولین /(اسلش) که در اینجا ad-track.anetwork.ir است. تابع زیر برای باز کردن لینک درون مرورگر پیشفرض ویندوز است: public async void OpenUrlInBrowser(Uri uri) { await Windows.System.Launcher.LaunchUriAsync(uri); } حال تابع NavigationStarting را برای کنترل WebView بنویسید: private void webView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) { // age uri e safhe ei ke mikhaim baz konim, null nabod // va tuye addresse oun addresse tracke ma vojod dasht if (null != args.Uri && args.Uri.AbsoluteUri.Contains(trackAddressContains)) { // navigation ro cancel mikonim, chon nemikhaim oun ro dar webview baz konim args.Cancel = true; // oun address ro ba morogar baz mikonim OpenUrlInBrowser(args.Uri); } } حال نیاز هست که رویداد و تابع Loadedـه صفحه رو بسازیم و داخل اون تابع آدرس تبلیغمون رو با WebView باز کنیم. این تابع رو من درون constructorـه صفحه ایجاد کردم: Loaded += (s, e) => webView.Navigate(new Uri(adsAddress)); + پروژه نمونه پیوست شد. (بعد از باز کردن پروژه، Rebuild Solution بزنید.) موفق باشید. Advertising Sample.zip
  11. پروژه نمونه پیوست شد. موفق باشید.
  12. سلام کافیه در فایل package.appxmanifest در تب Capabilities گزینه Microphone را تیک بزنید تا این مشکل برطرف گردد موفق باشید. پست زیر آپدیت شد. نمونه کد افزوده شد. https://www.win-nevis.com/topic/400-%DB%8C%DA%A9-%D8%AF%D9%88%D8%B1%D8%A8%DB%8C%D9%86-%D8%B3%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-uwp/ موفق باشید.
  13. سلام، آدرس زیر تمام API زرین پال رو آموزش داده: https://zarinpal-lab.github.io/API-Docs شما ابتدا باید یک کلاس مثل زیر باید داشته باشید: public class LoginBody { public string grant_type { get; set; } public string client_id { get; set; } public string client_secret { get; set; } public string username { get; set; } public string password { get; set; } public string scope { get; set; } public bool is_web_app { get; set; } } که به صورت زیر باید سریالایزش کنید به JSON:(اینجا با Json.Net کلاس رو سریالایز کردیم) LoginBody o = new LoginBody(); o.client_id = Constant.ClientId; o.client_secret = Constant.ClientSecret; o.grant_type = "password"; o.is_web_app = false; o.username = email; o.password = password; o.scope = "full-access"; var v = JsonConvert.SerializeObject(o); متاسفانه اینجا نیازی به ClientId و ClientSecret دارید که تا جایی که من میدونم فقط این ها رو در اختیار برنامه نویسای خودشون قرار میدن. در کل روش کار اینطوریه که اول نیاز به AccessToken دارید که با کد بالا و ارسال اون به آدرس زیر (پست کردن اطلاعات با متد application/json)، دسترسی میگیرید: https://api.zarinpal.com/rest/v3/oauth/accessToken.json سپس باید کیف پول ها رو دریافت کنید و آیدی کیف پول رو درخواست بفرستید به آدرس زیر تا تراکنش ها رو براتون نشون بده: https://api.zarinpal.com/rest/v3/transaction/withdraw.json مثلا این اطلاعات رو: { "card_id": "12ygjev1273wdwqdqw", "amount": 5000, "purse": 1 } موفق باشید.
  14. سلام، مشکلی ایجاد نمیکنه فایل appxbundle معمولا برای بتا تستر ها مورد استفاده قرار میگیره اما استور هم قبولش می کنه. فایل appxupload مخصوص استور هست و زمانی که برنامه ای ایجاد شد بهتره که این فایل برای استور فرستاده بشه. این فایل حاوی سمبل های خطایابی (symbol debugging)برای کرش ریپورت ها(گزارش کرش ها) که برای رفع باگ برنامه نویس نیاز داره هست که این ها مورد نیاز برنامه ها نیز هستند. فایل appxupload همچنین دارای چند فایل فشرده با فرمت appxsym هست که این فایل سمبل های عمومی رو درون خودش ذخیره می کنه. درون فایل appxupload فایل appxbundle برنامه هم وجود داره. حجم فایل appxbundle به دلایلی که بالا گفته شد خیلی کمتر از فایل appxupload هست. موفق باشید.
  15. سلام من قبلا این کار رو برای پلیر های AVP و Ultra Player انجام داده. شما باید از پروژه ی FFMPEGInterop که مایکروسافت به عنوان یک Wrapper برای استفاده از FFMpeg ساخته استفاده کنید. این پروژه با زبان سی پلاس پلاس ساخته شده. https://github.com/Microsoft/FFmpegInterop اگه طبق گفته ی آدرس زیر عمل کرده باشید، پس باید فایل Solutionـه این پروژه نمونه رو بدون هیچ مشکلی باز کنید: https://trac.ffmpeg.org/wiki/CompilationGuide/WinRT پروژه نمونه در فایل Samples هست. اگه شما درست بیلد رو انجام داده باشید پس باید یکی از فایل های FFmpegSampleWin8.1.sln یا FFmpegSampleWin10.sln را بدون هیچ مشکلی با ویژوال استودیو باز کنید و میتونید بدون هیچ مشکلی اون رو اجرا کنید. (اولین Solution برای ویندوز 8.1 و دومین برای ویندوز 10 هست) اینم یه عکس از Solution ویندوز 8.1. پوشه MediaPlayerCS نمونه کد سی شارپی هست. شما باید توی همین Solution پروژه خودتون رو ایجاد کنید یا اینکه در یک Solution جدا این کار رو انجام بدید سپس پروژه FFMpegInterop رو به Solutionـه تون به عنوان یک پروژه اضافه کنید و سپس از طریق References پروژه خودتون اون رو به عنوان یک ریفرنس به پروژه اضافه کنید: راجع به کدک x265، این Wrapperـه که ساخته شده، درست از این کدک پشتیبانی نمیکنه. راه حلی هم هنوز ارائه نشده. موفق باشید.