在主线程上工作太多了

时间:2014-09-26 10:12:21

标签: android multithreading media-player

我正在创建一个播放短媒体文件的应用程序。我只想要一个媒体按钮 - 当播放文件时,它应该显示停止媒体图标。文件播放完毕后,应立即恢复为播放图标。

注意 - player是媒体播放器类,包含所有相关方法(准备;播放;停止;暂停等)

我尝试在活动的onCreate中启动一个单独的帖子,如下所示:

Thread thread = new Thread()
{
    @Override
    public void run()
    {
        final ImageButton button = (ImageButton)findViewById(R.id.lesson_media_button);
        //BUTTON
        button.setOnClickListener(new View.OnClickListener() 
        {   
            @Override
            public void onClick(View v) 
            {
                if(media_button == true)
                {
                    media_button = false;
                    player.PlaySound();
                    button.setImageResource(R.drawable.stop);
                }
                else if(media_button == false)
                {
                    media_button = true;
                    player.StopSound(mycontext, audio);
                    button.setImageResource(R.drawable.play);
                }

                while(true)
                {
                    if(player.isPlaying() == false)
                    {
                        media_button = true;
                        button.setImageResource(R.drawable.play);
                        break;
                    }
                }
            }
        });

    }
};
thread.start();

播放工作正常,但是在忙碌播放时我永远无法停止文件,图像始终显示播放图标(从不停止)。当文件完成播放时,我得到应用程序可能在其主线程上做了太多工作警告。

任何人都可以帮助或建议更好的方法吗? 干杯

0 个答案:

没有答案