-1

このコードを試すと、アプリがクラッシュするという問題がありますか? MediaPlayer(MP)が再生されているかどうかを常に確認したいのですが、再生されている場合はテキストに「再生中」と表示させたいのですが、再生していない場合は「再生していません」と表示させたいのです。

Eclipse から警告は表示されませんが、それでもエクスポートするとロード時にクラッシュします。TextView を設定するコードが存在しないことは知っていますが、それは問題ではありません。(私は思う)これを行う別の方法があれば、正しい方向へのプッシュを喜んでいます。

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
                      //The Timer
                                Thread playingtimer = new Thread (){
                                    public void run() {
                                        try{
                                            int time = 1;
                                            while(time > 0) {
                                            sleep(100);

                                            if (MP.isPlaying()){ 
                                //set the TextView here "Now Playing"
                                            }
                                            else 
                                //set the TextView to "NOT Playing"
                                            }
                                        } 
                                        catch (InterruptedException e) {
                                        e.printStackTrace();
                                        }
                                        finally{

                                        }
                                    }
                                };
                                playingtimer.start();
4

2 に答える 2

0

ここでの問題は、そのタイマーから TextView を変更しようとするとクラッシュすることです。Android で最も重要なルールの 1 つは、メイン以外のスレッドからビューを変更できないためです。カスタム ワーカー スレッドから変更して機能させるには、ビューを変更するコードを runOnUIThread メソッドにラップするか、メイン スレッドでそのコードを実行する独自の Handler メカニズムを考え出します。

お役に立てれば。

よろしく!

于 2013-10-01T17:47:41.673 に答える