Android 安卓:MediaPlayer赢了';不要在碎片可见性中玩
我遇到了一个奇怪的问题,当媒体播放器代码位于片段的onCreateView方法中时,我的媒体播放器可以正常工作和播放Android 安卓:MediaPlayer赢了';不要在碎片可见性中玩,android,android-fragments,android-mediaplayer,Android,Android Fragments,Android Mediaplayer,我遇到了一个奇怪的问题,当媒体播放器代码位于片段的onCreateView方法中时,我的媒体播放器可以正常工作和播放 class HomeFragment1 extends Fragment implements OnClickListener{ @Override public View onCreateView(final LayoutInflater inflater, final ViewGroup container, Bundle
class HomeFragment1 extends Fragment implements OnClickListener{
@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
Bundle savedInstanceState){
final View view= inflater.inflate(R.layout.homefragment1, container, false);
try {
System.out.println("Should Play");
MediaPlayer player = new MediaPlayer();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource("http://10.0.2.2/users/" + user_id + "/tracks/track1.mp3");
player.prepare();
if (!player.isPlaying()) {
player.start();
}
} catch (Exception e) {
e.printStackTrace();
}
return view;
}
这段代码有效,玩家玩得很好
然而,我正试图根据片段的可视性来启动/停止音乐。因此,当我获取相同的代码块,并将其移动到setUserVisibleHint方法中时,它会中断。加载该活动需要很长时间,而且音乐永远不会播放,尽管它应该播放。当我滑动到另一个片段时,打印应该停止
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser)
{
try {
System.out.println("Should Play");
MediaPlayer player = new MediaPlayer();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource("http://10.0.2.2/users/" + user_id + "/tracks/track1.mp3");
player.prepare();
if (!player.isPlaying()) {
player.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
else
{
System.out.println("Should Stop");
//Enter stop logic here
}
}
Here is my error:
01-13 12:54:27.317 1458-1458/arufolo.trapster I/System.out﹕ Should Play
01-13 12:54:58.278 1458-1477/arufolo.trapster E/MediaPlayer﹕ error (1, -2147483648)
01-13 12:54:58.279 1458-1458/arufolo.trapster W/System.err﹕ java.io.IOException: Prepare failed.: status=0x1
01-13 12:54:58.283 1458-1458/arufolo.trapster W/System.err﹕ at android.media.MediaPlayer._prepare(Native Method)
01-13 12:54:58.284 1458-1458/arufolo.trapster W/System.err﹕ at android.media.MediaPlayer.prepare(MediaPlayer.java:1125)
01-13 12:54:58.284 1458-1458/arufolo.trapster W/System.err﹕ at arufolo.trapster.HomeFragment1.setUserVisibleHint(HomeActivity.java:221)
01-13 12:54:58.284 1458-1458/arufolo.trapster W/System.err﹕ at android.support.v4.app.FragmentPagerAdapter.setPrimaryItem(FragmentPagerAdapter.java:130)
01-13 12:54:58.284 1458-1458/arufolo.trapster W/System.err﹕ at android.support.v4.view.ViewPager.populate(ViewPager.java:1071)
01-13 12:54:58.295 1458-1458/arufolo.trapster W/System.err﹕ at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
01-13 12:54:58.296 1458-1458/arufolo.trapster W/System.err﹕ at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441)
01-13 12:54:58.296 1458-1458/arufolo.trapster W/System.err﹕ at android.view.View.measure(View.java:17430)
01-13 12:54:58.296 1458-1458/arufolo.trapster W/System.err﹕ at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
01-13 12:54:58.296 1458-1458/arufolo.trapster W/System.err﹕ at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
01-13 12:54:58.296 1458-1458/arufolo.trapster W/System.err﹕ at android.view.View.measure(View.java:17430)
01-13 12:54:58.296 1458-1458/arufolo.trapster W/System.err﹕ at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
01-13 12:54:58.297 1458-1458/arufolo.trapster W/System.err﹕ at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
01-13 12:54:58.297 1458-1458/arufolo.trapster W/System.err﹕ at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
01-13 12:54:58.297 1458-1458/arufolo.trapster W/System.err﹕ at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
01-13 12:54:58.297 1458-1458/arufolo.trapster W/System.err﹕ at android.view.View.measure(View.java:17430)
01-13 12:54:58.297 1458-1458/arufolo.trapster W/System.err﹕ at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
最奇怪的是。。。当您轻扫到一个新片段,然后轻扫回音乐应该播放的片段时,它播放得很好,没有错误
有人能帮我吗