私は単純な音楽アプリを構築しています。mediaplayer現在の位置は常にゼロです
私が試したものに関係なく、新しい曲を再生するために曲を停止することはできません。私は、ストップ、リリース、ストップ、リリースを一緒に試みました。私はサービスを作りました。私は現在のポジションを使ってMp3のポジションを取得しようとしていて、ポジションが1より大きければそれを再生することを検討しました。
しかし何も働かず、これを理解しようと怒っています。
私はこれを5日間働き、私がそれを投げたすべてで失敗しました。
私は、アドバイスと明確な解決策を非常に高く評価します。
私はnoobです。私は自分の問題を解決するために非常に努力していますが、これはただ私に困惑しています。
import android.app.Service;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.util.Log;
import java.io.IOException;
public class MyService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
MediaPlayer mediaplayer;
mediaplayer = new MediaPlayer();
mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
String extRec = intent.getExtras().getString("extRec");
Log.d("My Service", "Received extra: " + extRec);
if (mediaplayer.isPlaying()){
Log.d("My Service is playing ", "yes");
}
else {
Log.d("My Service is playing ", "no");
}
//mediaplayer.stop();
//mediaplayer.release();
try {
final String AudioURL = extRec;
Log.d("My Service audioURL ", AudioURL);
mediaplayer.setDataSource(AudioURL);
mediaplayer.prepare();
Log.d("My Service", "position: " + mediaplayer.getCurrentPosition());
mediaplayer.start();
} 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();
}
return START_STICKY;
}
}
あなたは何をすべきかそう、getCurrentPosition() 'の前に'開始() 'メソッド'呼んでいます現在のポジションについて期待していますか? – pskink