Я работаю над потоковой передачей песни из Интернета.Я сделал Customized Seek Bar
, но не могу установить дополнительный индикатор выполнения в своем приложении.Я приложил свой код.Пожалуйста, дайте мне знать, где я мог ошибиться.
Это мой custom_seek_bar.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background">
<shape>
<corners
android:radius="10dip" />
<stroke
android:width="4dip"
android:color="#ff000000" />
<gradient
android:startColor="#ff734B35"
android:centerColor="#ff8A6249"
android:centerY="0.50"
android:endColor="#ff91694F"
android:angle="270" />
</shape>
</item>
<item
android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners
android:radius="10dip" />
<stroke
android:width="4dip"
android:color="#ff000000" />
<gradient
android:startColor="#ff734B35"
android:centerColor="#ff8A6249"
android:endColor="#ff91694F"
android:angle="270" />
</shape>
</clip>
</item>
<item
android:id="@android:id/progress">
<clip>
<shape>
<corners
android:radius="10dip" />
<stroke
android:width="4dip"
android:color="#ff000000" />
<gradient
android:startColor="#432011"
android:endColor="#ff4A2514"
android:angle="90" />
</shape>
</clip>
</item>
Это мой styles.xml
:
<style name="CustomSeekBar" parent="android:Widget.SeekBar">
<item name="android:progressDrawable">@drawable/custom_seek_bar</item>
<item name="android:thumbOffset">0dip</item>
</style>
Я объявил это в playing.xml
:
<SeekBar
android:id="@+id/seekBar1"
style="@style/CustomSeekBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="17dp"
android:layout_marginRight="15dp"
android:secondaryProgress="100"
android:thumb="@drawable/point" />
Это мой java-файл:
SeekBar songControl, songControl1;
songControl = (SeekBar) view.findViewById(R.id.seekBar1);
songControl.setEnabled(false);
txt_Timer = (TextView) view.findViewById(R.id.text_start_time);
txt_stop_timer = (TextView) view.findViewById(R.id.text_stop_time);
songControl.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
Log.d("Progres changed", "" + progress);
try {
if (mediaPlayer.isPlaying()) {
int seconds = (int) (progress / 1000) % 60;
int minutes = (int) ((progress / (1000 * 60)));
txt_Timer.setText("" + minutes + ":" + seconds);
if (fromUser) {
mediaPlayer.seekTo(progress);
songControl.setProgress(progress);
}
} else
songControl.setProgress(progress);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
});
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
// TODO Auto-generated method stub
Log.i("Main Activity", "Progress" + percent);
songControl.setSecondaryProgress(percent);
songControl.setBackgroundColor(Color.BLUE);
}
После всего этого я не получаю ошибок, но во время воспроизведения песни я не получаю дополнительный индикатор выполнения вSeekBar
.Я подозреваю, что проблема может быть в Custom_seek_bar.xml
, но не вижу, что я делаю неправильно.