0

現在Androidアプリ開発で行っているコースの資料として、Android Wireless Application Development 2nd edition 2009(L.Darcey&S.Conder、Addison Wesley発行)という本を使用しています。この本の第3章では、MediaPlayerクラスを使用して、メディアプレーヤーオブジェクトを開始し、以下のこのメソッドを使用してmp3ファイルをアプリにストリーミングします。

public void playMusicFromWeb() {
    try {
        Uri file = Uri.parse("http://downloads.bbc.co.uk/podcasts/6music/adamandjoe/adamandjoe_20111231-1430a.mp3");
        mp = MediaPlayer.create(this, file);
        mp.start();
    }
    catch (Exception e) {
        Log.e(DEBUG_TAG, "Player failed", e);
    }
}

幸いなことに、これはすべてAPI 8(本で使用されているもの)で問題なく機能します。ただし、このメソッドをより高いAPI、特に(書き込み時に)利用可能な最新のAPIである15で使用しようとすると、NullPointerExceptionスローされます。変数は文字列値を適切に保持しているように見えるので、デバッグしても賢明fileではありませんが、機能的なmp3ストリームには変換されません。などを使っていろいろなアプローチを試しprepare(); prepareAsync(); setDataSource(); reset();ましたが、何もうまくいかないようです。あなたは私の先生が私を助けることができると思うでしょう、しかし彼らはどうやらどちらも何をすべきかを知らないようです。私は今、このストリーミング方法は8よりも高いAPIでは廃止されているに違いないと思います。誰かがAPI15でmp3ファイルをストリーミングする方法に光を当てることができれば非常にありがたいです。

4

3 に答える 3

0

それ以上のことをしなければならないと思います。これは、あなたが望むことをするための例です:

于 2012-05-03T12:23:38.970 に答える
0
  1. content-typeURLのヘッダーが間違っている可能性があります。

  2. 次の構文を試すことができます。

    MediaPlayer mp = new MediaPlayer();
    mp.setDataSource(URL_OF_FILE);
    mp.prepare();
    mp.start();
    

    NullPointerException残っているかどうかを確認します。

  3. この特定の主題に関する最新のチュートリアルを表示することもできます。

于 2012-05-03T12:26:44.870 に答える
0

次の行を追加するのと同じくらい簡単でした:

<uses-permission android:name="android.permission.INTERNET" />

マニフェストファイルに!

于 2012-05-09T16:45:15.170 に答える