こんにちは 最初に基本情報を載せます。 使用APIレベル17 最低APIレベル8 テストAndroid端末ガラパゴス005SH2.3.4 ベースバンドバージョン1.00.04 ビルド番号S4090 開発環境 OS Windows7 32Bit Eclipse3.7Indigo 現在音楽プレイヤーを作成しています。 今行き詰まっている内容としてはChorometerでの一時停止した後リスタートの実装について行き詰まっています。 現在状態としては一時停止0:00秒の時に一時停止ボタンを押して5秒待つ→5秒後0:05になりリスタートされていない状態になっています ソースコードを載せたほうがわかりやすいとおもいますので200行以上のソースですが載せます。 javaソース package com.exploreralpha; import java.io.IOException; import java.text.BreakIterator; import android.media.MediaPlayer.OnCompletionListener; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.media.MediaPlayer; import android.os.Bundle; import android.os.SystemClock; import android.provider.MediaStore; import android.provider.MediaStore.Audio.AudioColumns; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Chronometer; import android.widget.Chronometer.OnChronometerTickListener; import android.widget.ProgressBar; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; import android.widget.Toast; //音楽再生,音楽停止,巻き戻し,繰り返し再生,一時停止,自前コントローラの機能を保有するクラス public class MusicPlayer extends Activity implements OnClickListener, OnCompletionListener { TextView textView; TextView musicEndTime; MediaPlayer music; Button playButton;//音楽再生/一時停止ボタン Button rewindButton;//巻き戻しボタン Button repetMusicButton;//繰り返し再生ボタン Chronometer chorotemer; long startTime=0;//開始時間 Long stopTime;//停止時間 int duration;//ファイルの長さ(時間)を取得する変数 int currnetPosion;//現在の再生位置を取得する変数 TextView title;//曲名 TextView artst;//アーティスト名 TextView album;//アルバム名 AlertDialog.Builder dialog; SeekBar seekBar; boolean startFlag; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.music); music =new MediaPlayer(); musicPlay(); //それぞれのリソースIDを取得 playButton=(Button)findViewById(R.id.musicPuse_id); rewindButton=(Button)findViewById(R.id.rewind_id); repetMusicButton=(Button)findViewById(R.id.repetMusic_id); musicEndTime =(TextView)findViewById(R.id.musicEndtime); chorotemer=(Chronometer)findViewById(R.id.startTimer_id); artst =(TextView)findViewById(R.id.artstText_id); //それぞれのボタンが押された時の処理をセットするためsetOnClickListenerインタフェースを //それぞれのボタンにセットしてMusicPlayer本体に実装する playButton.setOnClickListener(this); rewindButton.setOnClickListener(this); repetMusicButton.setOnClickListener(this); music.setOnCompletionListener(this); chorotemer=(Chronometer)findViewById(R.id.startTimer_id); //最初に画面が生成した時に再生ボタンの画像を割り当てる playButton.setBackgroundResource(R.drawable.pause); initMediaDate(); duration =music.getDuration(); String timeStr=TimeText(duration); musicEndTime.setText(timeStr); // 初期値の設定 設定しないと端末が起動してからの時間からスタート startTime=SystemClock.elapsedRealtime(); chorotemer.setBase(startTime); chorotemer.start(); } //アーティスト名、音楽のタイトル名、アルバム名を管理するメソッド private void initMediaDate() { } //ライフサイクルが破棄された時に呼び出される protected void onDestroy(){ super.onDestroy(); Log.d("onDestroy", "ライフサイクルの破棄された状態です"); music.reset(); music.release(); } //Activityが前面になる時に呼び出される。 protected void onResume(){ super.onResume(); Log.d("onResume", "ライフサイクルの状態でResumeの状態です"); } //音楽を再生させるメソッド private void musicPlay() { seekBar =(SeekBar)findViewById(R.id.seekBar_id); //インテントを取得 Intent intent = getIntent(); // インテントに保存されたデータを取得 String data = intent.getStringExtra("keyword"); try { music.setDataSource(d
↧