ウェブで検索しても、まだアンドロイドでmp3ファイルをストリーミングする方法が見つかりません。ここ は私の単純なJavaコードです:Android:Media Player URLからmp3をストリーミングするときに準備できません
package com.khagendra.livestreamaudio;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.io.IOException;
public class BlurPlayer extends AppCompatActivity {
Button buttonStop,buttonStart ;
String AudioURL = "http://www.android-examples.com/wp-content/uploads/2016/04/Thunder-rumble.mp3";
MediaPlayer mediaplayer;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_blur_player);
buttonStart = (Button)findViewById(R.id.button1);
buttonStop = (Button)findViewById(R.id.button2);
mediaplayer = new MediaPlayer();
mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
buttonStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"start",Toast.LENGTH_SHORT).show();
try {
mediaplayer.setDataSource(AudioURL);
mediaplayer.prepare();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mediaplayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
Toast.makeText(getApplicationContext(),"prepared",Toast.LENGTH_SHORT).show();
mediaplayer.start();
}
});
}
});
buttonStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"stop",Toast.LENGTH_SHORT).show();
mediaplayer.stop();
}
});
}
}
私は唯一のID、ボタン1とボタンとレイアウトで2つのボタンが持つマニフェスト
<uses-permission android:name="android.permission.INTERNET"/>
に許可を追加しました。 は、最初に私はmediaplayer.prepare();
を使用していたとlogcat出力は
06-26 12:03:57.680 3249-3249/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
06-26 12:03:57.680 3249-3249/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
06-26 12:03:57.680 3249-3249/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve interface method 15147: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
06-26 12:03:57.680 3249-3249/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x72 at 0x0002
06-26 12:03:57.680 3249-3249/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
06-26 12:03:57.680 3249-3249/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve interface method 15151: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
06-26 12:03:57.680 3249-3249/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x72 at 0x0002
06-26 12:03:57.760 3249-3249/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
06-26 12:03:57.760 3249-3249/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve virtual method 424: Landroid/content/res/TypedArray;.getChangingConfigurations()I
06-26 12:03:57.760 3249-3249/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
06-26 12:03:57.760 3249-3249/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
06-26 12:03:57.760 3249-3249/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve virtual method 446: Landroid/content/res/TypedArray;.getType (I)I
06-26 12:03:57.760 3249-3249/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
06-26 12:03:57.821 3249-3249/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawable
06-26 12:03:57.821 3249-3249/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve virtual method 387: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
06-26 12:03:57.821 3249-3249/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
06-26 12:03:57.821 3249-3249/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawableForDensity
06-26 12:03:57.821 3249-3249/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve virtual method 389: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
06-26 12:03:57.821 3249-3249/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
06-26 12:03:57.831 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer-JNI﹕ native_setup
06-26 12:03:57.831 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer﹕ constructor
06-26 12:03:57.841 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer﹕ setListener
06-26 12:03:57.841 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer-JNI﹕ setAudioStreamType: 3
06-26 12:03:57.841 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer﹕ MediaPlayer::setAudioStreamType
06-26 12:03:57.941 3249-3249/com.khagendra.livestreamaudio D/libEGL﹕ loaded /vendor/lib/egl/libGLES_vc4.so
06-26 12:03:57.941 3249-3249/com.khagendra.livestreamaudio D/﹕ GPU monitor inactive - could not find libgpumonitor.so [Symbol not found: ] or not enabled (debug.egl.hw.gpumonitor = 0)
06-26 12:03:57.941 3249-3249/com.khagendra.livestreamaudio W/khrn_client﹕ init_window num_buffers 3 min undequeued buffers 1
06-26 12:03:57.941 3249-3249/com.khagendra.livestreamaudio W/khrn_client﹕ init_window window 0x4f50c158, 480x800 hintTransform 0x0 do_pre 1
06-26 12:03:57.961 3249-3249/com.khagendra.livestreamaudio D/OpenGLRenderer﹕ Enabling debug mode 0
06-26 12:04:03.626 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer﹕ setVideoSurfaceTexture
06-26 12:04:03.626 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer﹕ prepare
06-26 12:04:03.696 3249-3260/com.khagendra.livestreamaudio V/MediaPlayer﹕ message received msg=100, ext1=1, ext2=-1004
06-26 12:04:03.696 3249-3260/com.khagendra.livestreamaudio E/MediaPlayer﹕ error (1, -1004)
06-26 12:04:03.696 3249-3260/com.khagendra.livestreamaudio V/MediaPlayer﹕ signal application thread
06-26 12:04:03.696 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer﹕ prepare complete - status=1
06-26 12:04:03.706 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ java.io.IOException: Prepare failed.: status=0x1
06-26 12:04:03.716 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.media.MediaPlayer.prepare(Native Method)
06-26 12:04:03.716 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at com.khagendra.livestreamaudio.BlurPlayer$1.onClick(BlurPlayer.java:44)
06-26 12:04:03.716 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.view.View.performClick(View.java:4432)
06-26 12:04:03.716 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.view.View$PerformClick.run(View.java:18338)
06-26 12:04:03.716 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:725)
06-26 12:04:03.726 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:92)
06-26 12:04:03.726 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.os.Looper.loop(Looper.java:137)
06-26 12:04:03.726 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5283)
06-26 12:04:03.726 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
06-26 12:04:03.726 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:511)
06-26 12:04:03.726 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
06-26 12:04:03.726 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
06-26 12:04:03.726 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)
06-26 12:04:03.736 3249-3249/com.khagendra.livestreamaudio W/Choreographer﹕ Already have a pending vsync event. There should only be one at a time.
06-26 12:04:03.746 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer﹕ setVideoSurfaceTexture
06-26 12:04:03.746 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer﹕ prepare
06-26 12:04:03.856 3249-3261/com.khagendra.livestreamaudio V/MediaPlayer﹕ message received msg=100, ext1=1, ext2=-1004
06-26 12:04:03.856 3249-3261/com.khagendra.livestreamaudio E/MediaPlayer﹕ error (1, -1004)
06-26 12:04:03.856 3249-3261/com.khagendra.livestreamaudio V/MediaPlayer﹕ signal application thread
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio V/MediaPlayer﹕ prepare complete - status=1
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ java.io.IOException: Prepare failed.: status=0x1
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.media.MediaPlayer.prepare(Native Method)
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at com.khagendra.livestreamaudio.BlurPlayer$1.onClick(BlurPlayer.java:44)
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.view.View.performClick(View.java:4432)
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.view.View$PerformClick.run(View.java:18338)
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:725)
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:92)
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.os.Looper.loop(Looper.java:137)
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5283)
06-26 12:04:03.856 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
06-26 12:04:03.866 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:511)
06-26 12:04:03.866 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
06-26 12:04:03.866 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
06-26 12:04:03.866 3249-3249/com.khagendra.livestreamaudio W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)
06-26 12:04:03.906 3249-3249/com.khagendra.livestreamaudio I/brcm-gr﹕ [gralloc_lock]: new usage 0x933
06-26 12:04:05.628 3249-3249/com.khagendra.livestreamaudio I/brcm-gr﹕ [gralloc_lock]: new usage 0x933
だったが、その後私は約mediaplayer.prepareAsync();
が、役に立たないお読みください。 logcat出力は、この時間だった:私は別のAndroid携帯電話上でこのコードをテストしている
06-26 12:04:52.634 3249-3249/com.khagendra.livestreamaudio W/egl_server﹕ Allocating storage 1x1 surface type 0x1
06-26 12:05:13.785 3645-3645/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
06-26 12:05:13.785 3645-3645/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
06-26 12:05:13.785 3645-3645/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve interface method 15147: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
06-26 12:05:13.785 3645-3645/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x72 at 0x0002
06-26 12:05:13.785 3645-3645/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
06-26 12:05:13.785 3645-3645/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve interface method 15151: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
06-26 12:05:13.785 3645-3645/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x72 at 0x0002
06-26 12:05:14.455 3645-3645/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
06-26 12:05:14.455 3645-3645/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve virtual method 424: Landroid/content/res/TypedArray;.getChangingConfigurations()I
06-26 12:05:14.455 3645-3645/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
06-26 12:05:14.465 3645-3645/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
06-26 12:05:14.465 3645-3645/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve virtual method 446: Landroid/content/res/TypedArray;.getType (I)I
06-26 12:05:14.465 3645-3645/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
06-26 12:05:15.056 3645-3645/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawable
06-26 12:05:15.056 3645-3645/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve virtual method 387: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
06-26 12:05:15.056 3645-3645/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
06-26 12:05:15.056 3645-3645/com.khagendra.livestreamaudio I/dalvikvm﹕ Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawableForDensity
06-26 12:05:15.056 3645-3645/com.khagendra.livestreamaudio W/dalvikvm﹕ VFY: unable to resolve virtual method 389: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
06-26 12:05:15.056 3645-3645/com.khagendra.livestreamaudio D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
06-26 12:05:15.086 3645-3645/com.khagendra.livestreamaudio V/MediaPlayer-JNI﹕ native_setup
06-26 12:05:15.086 3645-3645/com.khagendra.livestreamaudio V/MediaPlayer﹕ constructor
06-26 12:05:15.086 3645-3645/com.khagendra.livestreamaudio V/MediaPlayer﹕ setListener
06-26 12:05:15.086 3645-3645/com.khagendra.livestreamaudio V/MediaPlayer-JNI﹕ setAudioStreamType: 3
06-26 12:05:15.086 3645-3645/com.khagendra.livestreamaudio V/MediaPlayer﹕ MediaPlayer::setAudioStreamType
06-26 12:05:15.536 3645-3645/com.khagendra.livestreamaudio D/libEGL﹕ loaded /vendor/lib/egl/libGLES_vc4.so
06-26 12:05:15.546 3645-3645/com.khagendra.livestreamaudio D/﹕ GPU monitor inactive - could not find libgpumonitor.so [Symbol not found: ] or not enabled (debug.egl.hw.gpumonitor = 0)
06-26 12:05:15.546 3645-3645/com.khagendra.livestreamaudio W/khrn_client﹕ init_window num_buffers 3 min undequeued buffers 1
06-26 12:05:15.546 3645-3645/com.khagendra.livestreamaudio W/khrn_client﹕ init_window window 0x4f50c158, 480x800 hintTransform 0x0 do_pre 1
06-26 12:05:15.576 3645-3645/com.khagendra.livestreamaudio D/OpenGLRenderer﹕ Enabling debug mode 0
06-26 12:05:20.892 3645-3645/com.khagendra.livestreamaudio V/MediaPlayer﹕ setVideoSurfaceTexture
06-26 12:05:20.892 3645-3645/com.khagendra.livestreamaudio V/MediaPlayer﹕ prepareAsync
06-26 12:05:20.982 3645-3657/com.khagendra.livestreamaudio V/MediaPlayer﹕ message received msg=100, ext1=1, ext2=-1004
06-26 12:05:20.982 3645-3657/com.khagendra.livestreamaudio E/MediaPlayer﹕ error (1, -1004)
06-26 12:05:20.982 3645-3657/com.khagendra.livestreamaudio V/MediaPlayer﹕ callback application
06-26 12:05:20.982 3645-3657/com.khagendra.livestreamaudio V/MediaPlayer﹕ back from callback
06-26 12:05:21.482 3645-3645/com.khagendra.livestreamaudio E/MediaPlayer﹕ Error (1,-1004)
06-26 12:05:21.502 3645-3645/com.khagendra.livestreamaudio I/brcm-gr﹕ [gralloc_lock]: new usage 0x933
- (サムスン、小米科技)
- リンク:The mp3 urlが働いています。
- このコードを私のsdcard(権限付き)にmp3ファイルとしてテストすると、このコードは正常に動作します。
- 私も、私も、私はこのコードの実行罰金を作るのすべての希望を失っているanother link
へのリンクを変更しようとしているMediaPlayer mediaplayer = MediaPlayer.create(this, Uri.parse(AudioURL));
あなたの問題は、あなたの代わりにprepareAsync() – user3793589
両方の準備のために、私は2 logcatを提供している()とprepareAsync()の)(準備使用されているものです。両方のケースでエラーが発生します。 –
ああ、私は気にしない! – user3793589