基本的には、意図的にサウンドを再生するボタンを持つ別のアクティビティを呼び出す主なアクティビティがあります。前記インテントとボタンでAndroid MediaPlayerエラーが発生する
は、第二の活性に私はこの方法を持っている:
public void start_sound(View v) {
String url = /*"MY_URL"*/;
try {
if (mp != null)
{
mp.stop();
mp.release();
mp = null;
}
mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDataSource(url);
mp.prepare();
mp.start();
} catch (Exception e) {}
}
mp
は(再生またはヌルであるときはいつでも私は確認することができる)グローバル変数です。
これは私がボタンをクリックしたときに何が起こるかです:
E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb40d7400
W/ViewRootImpl: Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=676.58203, y[0]=318.10547, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=866058, downTime=860523, deviceId=0, source=0x1002 }
W/ViewRootImpl: Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=676.58203, y[0]=318.10547, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=866058, downTime=860523, deviceId=0, source=0x1002 }
W/ViewRootImpl: Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=676.58203, y[0]=318.10547, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=866058, downTime=860523, deviceId=0, source=0x1002 }
W/ViewRootImpl: Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=676.58203, y[0]=318.10547, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=866058, downTime=860523, deviceId=0, source=0x1002 }
E/MediaPlayer: error (1, -2147483648)
I/Choreographer: Skipped 1806 frames! The application may be doing too much work on its main thread.
私が意図して活動を変更したときに最初のものが起こります。他のもの、私は音のボタンを押します。
私はすでにマニフェストで許可を受けています。
EDIT:これは完全なクラスです:
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class activity_2 extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_2);
}
public void start_sound(View v) {
String url = "<MY_URL>";
MediaPlayer mp = new MediaPlayer();
try {
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDataSource(url);
mp.setOnPreparedListener(this);
mp.prepare();
mp.start();
} catch (Exception ignored) {
}
}
}
が、今では私に 'E/MediaPlayerのを与え、変更:エラー(-38,0) E/MediaPlayerの::0 E/MediaPlayerの状態で呼び出さ停止状態4 E/MediaPlayerので呼び出さSTOP:(エラー - Media Player:処理されていないイベントが発生しました。 E/MediaPlayer:エラー(-38,0) E/MediaPlayer:エラー(1、-214) 7483648) ' –
エラーは何ですか? –
編集された答えを確認してください –