gpt4 book ai didi

java - 使用 fragment 按下“下一步”按钮时如何避免声音重叠? (安卓工作室)

转载 作者:太空宇宙 更新时间:2023-11-04 09:41:08 25 4
gpt4 key购买 nike

我在 Android Studio 中使用 Fragments,每个 Fragment 都包含一些教育类(class)。我决定在其中加入画外音,以便用户可以聆听画外音,而不是单独阅读类(class)。顺便说一句,我使用 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;
}
}

当我按下“下一页”按钮时,上一个声音应该停止,并开始下一页的声音。你们能给我一些代码吗?

最佳答案

您应该更改媒体源,否则每次按下下一个按钮时都会创建 MediaPlayer。您的下一个按钮代码看起来像...

next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mp.setDataSource(getApplicationContext(), myUri);
mp.prepare();
viewPager.setCurrentItem(1);
mp.start();
}
});

关于java - 使用 fragment 按下“下一步”按钮时如何避免声音重叠? (安卓工作室),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55981497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com