我在Android Studio中使用片段,每个片段都包含一些教育课程。我决定在其中添加语音,以便用户可以收听语音内容,而不必独自阅读课程。顺便说一下,我使用MediaPlayer。但是,当我按“下一步”按钮进入下一页时,声音重叠。前一个声音不会停止,而与下一个声音会重叠。
这是我的代码:
package com.pau.papsirehv.knowledge;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.TextView;
public class Fragment1 extends Fragment {
TextView next;
ViewPager viewPager;
Button btnSound;
public Fragment1() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
btnSound = (Button)getActivity().findViewById(R.id.btnSound);
MediaPlayer mp = MediaPlayer.create(getActivity().getApplicationContext(), R.raw.two);
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_fragment1, container, false);
viewPager = getActivity().findViewById(R.id.viewPager);
next = view.findViewById(R.id.slideOneNext);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
viewPager.setCurrentItem(1);
mp.start();
}
});
return view;
}
}
当我按下“下一步”按钮时,上一个声音应停止,而下一页的声音将开始。你们能给我一些代码吗?
答案 0 :(得分:0)
您应该更改媒体源,否则,每次按下按钮时都应创建MediaPlayer。您的下一个按钮代码看起来像...
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mp.setDataSource(getApplicationContext(), myUri);
mp.prepare();
viewPager.setCurrentItem(1);
mp.start();
}
});