2017-10-16 15 views
0

私はAndroid開発とAndroid搭載デバイスの全面的な新機能ですから、ここでどのように動作しているのか分かりません。JavaでURLから音楽をストリーミングする方法 - Android

私はアプリケーションを最小化した後、私のURLから音楽をストリーミングし、まだその曲を再生するアプリケーションを作りたいと思っています。

私は質問をしましたが、mp3曲やその他の種類の回答が多くありましたが、私のURLはライブラジオからのもので、1曲だけではありません。

私が発見し、私の問題のためによかった thisであり、このコードを使用しています回答の

ワン:これは音楽プレーヤーを選択するために私を促し

Uri myUri = Uri.parse("your url here"); 
Intent intent = new Intent(android.content.Intent.ACTION_VIEW); 
intent.setDataAndType(myUri, "audio/*"); 
startActivity(intent); 

「再生」ボタンを押して音楽を聴く方法はありますか?私はこのコードを使用して、私は外部のプレーヤーなしでいつでも私はストリーミング音楽を開始し、停止することができ、私のiOSアプリで

:事前

EDIT

func prepareToPlay() { 

     let url = URL(string: "myUrl") 

     playerItem = AVPlayerItem(url: url!) 

     player = AVPlayer(playerItem: playerItem) 

     player?.play() 
} 

感謝私がMPlayerで再生しようとしたコメントと答えに示唆した後、私は機能を作って、私がこのようにボタンをタップしたときにそれを呼び出しました:

public void playM() { 
    String url = "http://android.programmerguru.com/wp-content/uploads/2013/04/hosannatelugu.mp3"; 

    mPlayer = new MediaPlayer(); 
    mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    try { 
     mPlayer.setDataSource(url); 
    } catch (IllegalArgumentException e) { 
     Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show(); 
    } catch (SecurityException e) { 
     Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show(); 
    } catch (IllegalStateException e) { 
     Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    try { 
     mPlayer.prepare(); 
    } catch (IllegalStateException e) { 
     Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show(); 
    } catch (IOException e) { 
     Toast.makeText(getApplicationContext(), "You might not set the URI correctly!", Toast.LENGTH_LONG).show(); 
    } 
    mPlayer.start(); 
} 

しかし、私は、エラー(4番目のメッセージ)を取得し、私は、ログで見たこの:

メディアプレーヤーを作成することができません

状態1、Mplayerの(0x0の)

で呼び出さ

prepareAsync状態1、Mplayerの(0x0の)

エラーで呼び出さ

開始(-38、0)

+0

[ネットワークプロトコル](https://developer.android.com/guide/topics/media-formats.html#network)はあなたのサーバを使用して? – CommonsWare

+0

@CommonsWareそれはhttp –

+2

AFAIKを使用しています。それは十分に具体的ではありませんでした。リンク先のドキュメントをご覧ください。あなたは 'MediaPlayer'にURLを渡して、それが動作するかどうかを歓迎します。 – CommonsWare

答えて

1

インテントは、アクティビティ/サービスとシステム間でデータを送信するためにのみ使用しています。それは音楽を演奏しません。それは、何らかのアクティビティーに何をするべきかを言う以外は何もしません。マルチメディアストリームを再生するメカニズムが必要です。アプリケーション内でマルチメディアを再生するには、MediaPlayerクラスを使用する必要があります。ここで

は、ストリームから音楽を再生するにはどのようにいくつかのチュートリアル、です:ACTIONフラグとhttp://programmerguru.com/android-tutorial/android-mediaplayer-example-play-from-internet/

+0

の権限を追加していないようです。すぐに確認します... –

+0

私はそれを試みたが、うまくいきませんでした。私の編集を確認したい場合は –

+0

ページの最後に許可コードを追加しましたか? –

1

意図は、ほとんどの場合、別のアプリを開くことを意図しています。あなたがそれを必要としないので。あなたは自分のカスタムプレイヤーが必要です。そのため、Androidにはこのようなシナリオ用のMedia Playerクラスがあります。

インスタンスを作成し、ストリームURLを渡します。さて、データ・ソースを設定し、(準備呼びます)その後onBtnClickListener()mp.start()

Uri myUri = ....; // initialize Uri here 
MediaPlayer mediaPlayer = new MediaPlayer(); 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mediaPlayer.setDataSource(getApplicationContext(), myUri); 
mediaPlayer.prepare(); 
mediaPlayer.start(); 


P.を呼び出すことによって、音楽を始めますS:すべての例外をキャッチし、マニフェストファイルの許可を確認してください

関連する問題