首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android ICS MediaPlayer仅在用于同时播放的变量上崩溃

Android ICS MediaPlayer仅在用于同时播放的变量上崩溃
EN

Stack Overflow用户
提问于 2012-03-19 07:28:56
回答 1查看 236关注 0票数 1

我在两个不同的应用程序中有两种类型的MediaPlayer播放。一个是等待播放下一个单词/声音效果的单个变量。这似乎工作得很好。另一个是一组最多4个同时播放的MediaPlayer变量。这在2.3.3版本中可以工作,在4.0.3版本的虚拟设备上似乎也能工作,但在我的TF101上,它在这两个应用程序中都崩溃了。

在一个错误的触摸,playse('oops')将被调用。

代码语言:javascript
复制
public void playse(String ss){
    MediaPlayer tempse;

    if(tse1 == null){tempse = tse1;}
    else{if(tse2 == null){tempse = tse2;}
    else{if(tse3 == null){tempse = tse3;}
    else{if(tse4== null){tempse = tse4;}}}}

   if(ss == "oops"){ tempse =  MediaPlayer.create(mContext, R.raw.seoops); tempse.start();}
}

在应用程序的主循环中,4个变量是这样处理的:

代码语言:javascript
复制
        if(tse1 != null){ if(tse1.isPlaying()== false){tse1.release(); tse1=  null;} }

        if(tse2 != null){ if(tse2.isPlaying()== false){tse2.release(); tse2=  null;} }

        if(tse3 != null){ if(tse3.isPlaying()== false){tse3.release(); tse3=  null;} }  

        if(tse4 != null){ if(tse4.isPlaying()== false){tse4.release(); tse4=  null;} }
EN

回答 1

Stack Overflow用户

发布于 2012-03-19 07:57:14

你可以将其缩写

代码语言:javascript
复制
MediaPlayer tempse;
if(tse1 == null){tempse = tse1;}
else{if(tse2 == null){tempse = tse2;}
else{if(tse3 == null){tempse = tse3;}
else{if(tse4== null){tempse = tse4;}}}}

代码语言:javascript
复制
MediaPlayer tempse = null;

也许您应该将==更改为!=

这是我唯一能看到的东西,但我不知道你得到了什么错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9763266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档