Rewind seekbar works, that is, I touch seakbar and move to the desired position and acc. the sound is rewound, but for some reason there is no refresh of the everykbara every second, although the handler is hung
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); fab(); pageNumber = getArguments().getInt(ARGUMENT_PAGE_NUMBER); //Π½Π°Ρ
ΠΎΠΆΡ Π² xml seekBar = (SeekBar) getActivity().findViewById(R.id.sbar); playerText = (TextView) getActivity().findViewById(R.id.textPlayer); anim = AnimationUtils.loadAnimation(getContext(), R.anim.clickbutton); potehanim = AnimationUtils.loadAnimation(getContext(), R.anim.potehkianim); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment, container, false); //ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠ»Π΅Π΅ΡΡ mediaPlayer = new MediaPlayer(); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mediaPlayer.start(); } }); //Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ case ΡΠ²ΠΎΡ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΡΠΏΡ. ΠΌΠ΅Π»ΠΎΠ΄ΠΈΡ+Π°Π½ΠΈΠΌΠ°ΡΠΈΡ for (int i = 0; i < fragments.length; i++) { arr_imageA[i] = (ImageView) rootView.findViewById(fragments[i]); arr_imageA[i].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.startAnimation(potehanim); switch (v.getId()) { case R.id.imageView1: startActivity(getActivity(), a1.class); break; case R.id.imageView2: startActivity(getActivity(), a2.class); break; case R.id.imageView3: startActivity(getActivity(), a3.class); break; } } }); if (pageNumber == 1) { rootViewB = inflater.inflate(R.layout.fragment2, container, false); for (int index = 0; index < buttonIds.length; index++) { arr_imageB[index] = (ImageView) rootViewB.findViewById(buttonIds[index]); } for (int j = 0; j < arr_imageB.length; j++) { arr_imageB[j].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { stopAnimation(); switch (v.getId()) { case R.id.b1: { v.startAnimation(anim); playSample(soundsRawResIds[0]); break; } case R.id.b2: { v.startAnimation(anim); playSample(soundsRawResIds[1]); break; } case R.id.b3: { v.startAnimation(anim); playSample(soundsRawResIds[2]); break; } case R.id.b4: { v.startAnimation(anim); playSample(soundsRawResIds[3]); break; } case R.id.b5: { v.startAnimation(anim); playSample(soundsRawResIds[4]); break; } case R.id.b6: { v.startAnimation(anim); playSample(soundsRawResIds[5]); break; } case R.id.b7: { v.startAnimation(anim); playSample(soundsRawResIds[6]); break; } } } }); } return rootViewB; } } return rootView; } //Π·Π°ΠΏΡΡΠΊ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ public void startActivity(final Context activityContext, final Class<? extends Activity> activityClass) { new Handler().postDelayed(new Runnable() { @Override public void run() { startActivity(new Intent(activityContext, activityClass)); } }, 200); } // method in which I launch the player
private void playSample(int resid) { AssetFileDescriptor afd = getContext().getResources().openRawResourceFd(resid); if (mediaPlayer.isPlaying()) { mediaPlayer.stop(); stopAnimation(); } else { try { mediaPlayer.reset(); mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength()); mediaPlayer.prepareAsync(); afd.close(); } catch (IllegalArgumentException e) { Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e); } catch (IllegalStateException e) { Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e); } catch (IOException e) { Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e); } } }