Android - запуск mp3 по ссылке - PullRequest
       29

Android - запуск mp3 по ссылке

1 голос
/ 10 августа 2011

В настоящее время у меня есть webview, что, когда вы нажимаете ссылку mp3, mp3 начинает воспроизводиться.Недавно мы изменили все ссылки, и теперь они «https» вместо «http».Ошибка, которую я получаю от своего журнала cat, следующая:

08-09 17:26:59.060: ERROR/AndroidRuntime(5574): FATAL EXCEPTION: main
08-09 17:26:59.060: ERROR/AndroidRuntime(5574): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://s3.amazonaws.com/StopDropRave/Week+of+August+8/Flawless+ft.+Army+of+Karmen+-+L.I.E.+%28Love+Automatic+Dubstep+Remix%29.mp3 typ=audio/* }
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1409)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at android.app.Activity.startActivityFromChild(Activity.java:3067)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at android.app.Activity.startActivityForResult(Activity.java:2847)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at android.app.Activity.startActivity(Activity.java:2933)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at ravebox.dev.sdr.BlogActivity$HelloWebViewClient$1.onClick(BlogActivity.java:158)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:159)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at android.os.Looper.loop(Looper.java:123)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at android.app.ActivityThread.main(ActivityThread.java:3835)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at java.lang.reflect.Method.invokeNative(Native Method)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at java.lang.reflect.Method.invoke(Method.java:507)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
08-09 17:26:59.060: ERROR/AndroidRuntime(5574):     at dalvik.system.NativeStart.main(Native Method)

Я не знаю, из-за https или нет.Без понятия.есть идеи?спасибо

Это часть моего манифеста этой конкретной деятельности:

<activity android:name=".BlogActivity"
                  android:label="@string/app_name"
                  android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

Также здесь есть часть моего кода, где я обрабатываю часть прослушивания.По сути, это открывает диалог, в котором пользователь может выбрать прослушивание или загрузку.загрузка работает отлично, но прослушивание не происходит после изменения ссылки на https.

private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(final WebView view,
                final String url) {
            view.loadUrl(url);
            view.getSettings().getAllowFileAccess();
            view.getSettings().setJavaScriptEnabled(true);
            view.getCertificate();
            // load the dropbox files so people can listen to the track
            if (url.startsWith("https://") && url.endsWith(".mp3")) {
                view.getCertificate();
                progressWebView.dismiss();
                progressWebView.cancel();
                /*blogDialog.setButton("Listen",
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                Intent intent = new Intent(Intent.ACTION_VIEW);
                                intent.setDataAndType(Uri.parse(url), "audio/*");
                                view.getContext().startActivity(intent);

                            }
                        });*/
                blogDialog.setButton2("Download",
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                sdrUrl = url.toString();
                                new DownloadFile().execute();

                            }

                        });
                blogDialog.show();

            } else {
                return super.shouldOverrideUrlLoading(view, url);
            }
            return true;
        }
    }

1 Ответ

0 голосов
/ 11 августа 2011

SergioRa, Похоже, у вас есть BlogActivity, из которой вы пытаетесь воспроизвести любой аудиофайл. По умолчанию приложение Android Music player будет использоваться для воспроизведения данных по ссылкам. В активности потокового проигрывателя в приложении «Музыкальный проигрыватель» схема данных установлена ​​только на «http» и, следовательно, не будет воспроизводить контент из ваших новых ссылок по схеме «https».

У SO такой запрос уже есть, и вот ссылка, проблема с потоковой передачей звука по ссылке https

По этой причине загрузка работает нормально, а воспроизведение - нет. Поэтому я бы посоветовал вам загрузить файл во временную папку на вашем устройстве, прежде чем воспроизводить его.

...