0

こんにちは、ストリーミングがウェブから行われるラジオアプリを1つ作成しました

私のソースコードは

ユーザーがボタンをクリックすると、次のコードが実行されます

      if (!NotifyService.iSserviceRunning) {
            new PlayRadio().execute("");
        } 

// サービスを開始してプログレスバーを作成するための AYSNC クラス

  class PlayRadio extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... urls) {
        return "";
    }

    @Override
    protected void onPostExecute(String result) {
        try {
            startService(new Intent(RadioActivity.this, NotifyService.class));
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        try {
            PD = ProgressDialog.show(RadioActivity.this, "Tuning...", "Please Wait...");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

//サービスクラスは

   public class NotifyService extends Service {

private static String RADIO_STATION_URL;
public static  MediaPlayer player;
public static boolean iSserviceRunning = false;
@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public void onCreate() {
    super.onCreate();
    RADIO_STATION_URL = getResources().getString(R.string.streamurl);
    nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    initializeMediaPlayer();
    startPlaying();
    iSserviceRunning = true;
}

@Override
public void onDestroy() {
    super.onDestroy();
    nm.cancel(R.string.service_started);
    stopPlaying();
    initializeMediaPlayer();
    iSserviceRunning = false;
}


private void startPlaying() {
    player.setOnPreparedListener(new OnPreparedListener() {
        public void onPrepared(MediaPlayer mp) {
            player.start();

        }
    });
    new PrepareTask().execute();
}

private void stopPlaying() {
    if (player.isPlaying()) {
        player.pause();
        player.release();
    }
}

private void initializeMediaPlayer() {
    player = new MediaPlayer();

    try {
        player.setDataSource(RADIO_STATION_URL);
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

private class PrepareTask extends AsyncTask<Integer, Integer, Integer> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    protected void onPostExecute(Integer result) {
        if(RadioActivity.PD!=null){
            if(RadioActivity.PD.isShowing()){
                RadioActivity.PD.dismiss();             
            }
        }
    }

    @Override
    protected Integer doInBackground(Integer... arg0) {
        try {
            player.prepare();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

}

私のクライアントは、アプリケーションの読み込みに時間がかかりすぎると言いました..彼は、私のアプリよりも速く読み込まれるそのようなアプリケーションがたくさんあると言いました

私のコードで行ったことが間違っているので、多くの時間がかかっていることを誰かが示唆できますか?

4

0 に答える 0