نمایش نتایج 1 تا 6 از 6

نام تاپیک: مشکل در پخش موزیک از ادرس https

  1. #1
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    مشکل در پخش موزیک از ادرس https

    سلام دوستان وقت بخیر

    برای پخش یک موزیک دستور زیر رو نوشتم :

    mediaPlayer = new MediaPlayer();

    String url ="https://sv.singsong.live/98/11/22/Amirali%20Khani%20-%20Naro%20-%20128%20-%20SingSong.mp3";




    mediaPlayer.setDataSource(this, Uri.parse(url));
    mediaPlayer.setAudioStreamType(AudioManager.STREAM _MUSIC);




    mediaPlayer.prepareAsync();


    mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {


    mp.start();
    }
    });


    وقتی ادرس موزیک با http باشه به راحتی موزیک پخش میشه اما متاسفانه وقتی لینک بصورت ssl باشه ینی با https شروع بشه با خطای زیر مواجه میشوم :

    MediaPlayer: Couldn't open file on client side; trying server side
    MediaPlayer: error (1, -1004)
    ناگفته نماند که این خطا رو فقط در اندروید های پایینتر از جمله 4.2 و 4.3 و 4.4 مواجه میشوم (یا به عبارتی API-17 و API-18 و API-19) و در نسخه های بالاتر هیچ مشکلی نداره.

    فکر میکنم بایستی در این نسخه از اندروید ها ssl فعال کنیم...اما اینکه چطوری اینکارو برای موزیک پلیر انجام بدم راهی پیدانکردم.
    آخرین ویرایش به وسیله samiasoft : چهارشنبه 23 بهمن 1398 در 17:44 عصر

  2. #2
    کاربر دائمی آواتار mehdi.safavie
    تاریخ عضویت
    دی 1388
    محل زندگی
    تهران - اندیشه
    سن
    32
    پست
    219

    نقل قول: مشکل در پخش موزیک از ادرس https

    درود;


    خودم شخصا به این مشکل نخوردم. اما یک بار یکی این مشکل رو داشت ، نتونستم پیدا کنم کجا جوابش رو دادم مشکلش حل شد. هر چی یادم بود رو سرچ زدم، اینجا مینویسم ، امیدوارم کمکت کنه.
    تا جایی که یادمه باید داخل DefaultHttpDataSource مقدار allowCrossProtocolRedirects رو true کنی.
    شما از setDataSource استفاده کردی، برای این که بتونی allowCrossProtocolRedirects رو true کنی باید از ExtractorMediaSource استفاده کنی.این کدی که از اینترنت گرفتم رو بخون ، کمی کمکت میکنه بتونی allowCrossProtocolRedirects رو true کنی و مشکلت رو حل کنی.


    renderersFactory =newDefaultRenderersFactory(getActivity()); bandwidthMeter = new DefaultBandwidthMeter();
    trackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);
    trackSelector = new DefaultTrackSelector(trackSelectionFactory);
    loadControl = new DefaultLoadControl();
    player = ExoPlayerFactory.newSimpleInstance(renderersFactor y, trackSelector, loadControl);
    dataSourceFactory = new DefaultDataSourceFactory(getActivity(), "ExoplayerDemo");
    extractorsFactory = new DefaultExtractorsFactory();`




    ringtoneAdapter = new RingtoneAdapter1(ringtoneList, getActivity(), player, mediaSource, trackSelectionFactory, dataSourceFactory, extractorsFactory, mainHandler, renderersFactory, bandwidthMeter, loadControl, trackSelector, playeditem, Boolean.valueOf(false));




    mediaSource = new ExtractorMediaSource
    .Factory(dataSourceFactory)
    .setExtractorsFactory(extractorsFactory)
    .createMediaSource(Uri.parse(ringtoneList.get(posi tion).getUrl()), mainHandler, null);
    player.seekTo(0);


    player.setPlayWhenReady(true); player.prepare(mediaSource);

    داخل این کدی که نوشته شده به جای DefaultDataSourceFactory از ExtractorMediaSource استفاده کن.و یه Factory سفارشی برای خودت درست کن و allowCrossProtocolRedirects رو true قرار بده. فقط تو Constructor مربوط به DefaultDataSource باید اینطوری استفاده کنی
    DefaultDataSource(Context context, String userAgent, boolean allowCrossProtocolRedirects)

  3. #3
    کاربر دائمی آواتار mehdi.safavie
    تاریخ عضویت
    دی 1388
    محل زندگی
    تهران - اندیشه
    سن
    32
    پست
    219

    نقل قول: مشکل در پخش موزیک از ادرس https

    شاید این کد هم بتونه کمکت کنه
    LoadControl loadControl = new DefaultLoadControl();



    bandwidthMeter = new DefaultBandwidthMeter();
    extractorsFactory = new DefaultExtractorsFactory();


    trackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);


    trackSelector = new DefaultTrackSelector(trackSelectionFactory);
    defaultBandwidthMeter = new DefaultBandwidthMeter();
    dataSourceFactory = new DefaultDataSourceFactory(this,
    Util.getUserAgent(this, "mediaPlayerSample"), defaultBandwidthMeter);




    mediaSource = new ExtractorMediaSource(Uri.parse(radioURL), dataSourceFactory, extractorsFactory, null, null);


    player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, loadControl);
    player.prepare(mediaSource);
    player.setPlayWhenReady(true);

  4. #4
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: مشکل در پخش موزیک از ادرس https

    متشکرم از راهنمایی شما

    اما متاسفانه این دستوراتی که قرار دادید انگار به کتابخانه یا کلاس هایی وابسته هست که من نتونستم پیداشون کنم!

    فکرمیکنم شما این را برای exoplayer استفاده کردید که این دستورات به کلاس اون وابسته است.
    آخرین ویرایش به وسیله samiasoft : چهارشنبه 23 بهمن 1398 در 16:28 عصر

  5. #5
    کاربر دائمی آواتار mehdi.safavie
    تاریخ عضویت
    دی 1388
    محل زندگی
    تهران - اندیشه
    سن
    32
    پست
    219

    نقل قول: مشکل در پخش موزیک از ادرس https

    قصد ندارم تو ذوق برنامه نویسیه شما بزنم. از سوالات گوناگونی که تو این وبسایت کردید مشخصه که سطح پایینی ندارین.
    اما معمولا اگر یه همچین کمک هایی میشه ، شما خودتون برین دنبال اون چیز هایی که گنگ هستن ، خیلی مورد های بیشتری گیرتون میاد.
    باز اگر نمیتونین به مرادتون برسین ، نهایت باید کل کاری که میخواین رو بنده شخصا انجام بدم کد رو براتون بزارم. اما نصیحت برادرانه من تو تجربه چند ساله ای که داشتم اینه که حتی اگر سر نخ اشتباه هم دادیم به شما ، سر نخ رو دنبال کنین ، هم به مراد خودتون میرسین هم موارد بیشتری عایدتون میشه.

  6. #6
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: مشکل در پخش موزیک از ادرس https

    نقل قول نوشته شده توسط mehdi.safavie مشاهده تاپیک
    قصد ندارم تو ذوق برنامه نویسیه شما بزنم. از سوالات گوناگونی که تو این وبسایت کردید مشخصه که سطح پایینی ندارین.
    اما معمولا اگر یه همچین کمک هایی میشه ، شما خودتون برین دنبال اون چیز هایی که گنگ هستن ، خیلی مورد های بیشتری گیرتون میاد.
    باز اگر نمیتونین به مرادتون برسین ، نهایت باید کل کاری که میخواین رو بنده شخصا انجام بدم کد رو براتون بزارم. اما نصیحت برادرانه من تو تجربه چند ساله ای که داشتم اینه که حتی اگر سر نخ اشتباه هم دادیم به شما ، سر نخ رو دنبال کنین ، هم به مراد خودتون میرسین هم موارد بیشتری عایدتون میشه.
    فرمایشتون صحیح..بنده همیشه سعی میکنم قبل ایجاد تاپیک چه درسایت های خارجی و چه سایت و انجمن ها ایرانی جستجو کنم و اگر به نتیجه نرسیدم از راهنمایی شما دوستان عزیز استفاده کنم.... دراین مورد هم باور بفرمایید کل سایت ها رو زیرورو کردم حتی سایت خود اندروید اما در این زمینه هیچ موردی بدست نیاوردم به بن بست رسیدم !

    همین مواردی هم که اشاره کردید رو من بررسی کردم که نمونه اون دستور رو برای mediaplayer بنویسیم که نتوانستم.....فعلا جهت رفع مشکل اومدم در این نسخه از اندروید ها بجای https از http استفاده کردم تا مشکلی رخ نده.

    if (Build.VERSION.SDK_INT <= 19){                url=url.replace("https","http");
    }

    مطمئنا از پلیرهایی مثل exoplayer استفاده کنم با همین دستوراتی که نوشتید این مشکلات رو نخواهم داشت.
    آخرین ویرایش به وسیله samiasoft : پنج شنبه 24 بهمن 1398 در 21:17 عصر

تاپیک های مشابه

  1. آموزش: پخش موزیک در وبلاگ و یا وب سایت خود - نحوه ایجاد کد موزیک
    نوشته شده توسط parandweb در بخش طراحی وب (Web Design)
    پاسخ: 0
    آخرین پست: پنج شنبه 04 مهر 1392, 09:05 صبح
  2. خبر: تهدیدی جدید برای رمزنگاری HTTPS
    نوشته شده توسط abolfazl-z در بخش PHP
    پاسخ: 1
    آخرین پست: سه شنبه 22 مرداد 1392, 10:41 صبح
  3. سوال: چگونه ایجاد کردن https
    نوشته شده توسط fp-1388 در بخش تالار های مرتبط با شبکه و امنیت
    پاسخ: 3
    آخرین پست: چهارشنبه 10 شهریور 1389, 22:07 عصر
  4. سوال: Https
    نوشته شده توسط پرنده کوچک در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 20 مرداد 1387, 15:25 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •