媒体播放器流媒体无法在note 5上工作



我目前正在为其中一个客户端开发流媒体广播应用程序,该应用程序即将完成,运行良好。(假设我测试时工作良好)。但问题是它根本不适用于我客户的手机。他有一个银河注5,他在美国(我在斯里兰卡)。我在很多手机上测试了这款应用程序,(Galaxy note edge、HTC one M8、Galaxy s5、Galaxy s4、Oneplus one、Galaxy Note3、华为荣耀3c、华为ascend)。它在所有这些手机上都能完美工作。但当他测试它时,它不起作用。他说启动这个小家伙花了30多分钟。我通过前台服务呼叫了媒体播放器,这是我的媒体播放器服务代码。

public class RadioService extends Service implements MediaPlayer.OnBufferingUpdateListener,MediaPlayer.OnErrorListener {
public static final String ACTION_PLAY = "com.example.action.PLAY";
static MediaPlayer mMediaPlayer = null;
public static ChannelDetails channelDetails;
public static int playState =0;
public static boolean isRunning;
public void initMedeaPlayer(){
    Log.d("RadioService", "initMediaPlayer");
    mMediaPlayer = new MediaPlayer();
    mMediaPlayer.reset();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    if (intent.getAction().equals(ACTION_PLAY) && intent.getExtras().getSerializable("channelDetails")!=null) {
        Log.d("RadioService", "OnStartCommand");
      try{
          channelDetails = (ChannelDetails)intent.getExtras().getSerializable("channelDetails");
          initMedeaPlayer();
          playMusic(null);
          foregroundService();
          isRunning = true;
      }catch(Exception e){
          e.printStackTrace();
      }
    }
    return super.onStartCommand(intent, flags, startId);
}
public static void playMusic(ChannelDetails cn) {
   try{
       if(cn!=null){
           channelDetails = cn;
           mMediaPlayer.reset();
       }else{
       }
       mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
       mMediaPlayer.setDataSource(channelDetails.getUrl());
       mMediaPlayer.prepareAsync(); 
       mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
           @Override
           public void onPrepared(MediaPlayer mp) {
               playState = 1;
               Log.d("RadioService", "OnPrepared");
               mp.start();
           }
       });
   }catch(Exception e){
       e.printStackTrace();
   }
}
public static void pauseMusic() {
    try{
       mMediaPlayer.pause();
        playState=2;
    }catch(Exception e){
        e.printStackTrace();
    }
}
public static void simplePlayMusic() {
    try{
        mMediaPlayer.start();
        playState=1;
    }catch(Exception e){
        e.printStackTrace();
    }
}
@Override
public void onCreate() {
    super.onCreate();
    Log.d("RadioService", "OnCreate");
}
@Override
public void onDestroy() {
    super.onDestroy();
    mMediaPlayer.stop();
    mMediaPlayer.release();
    mMediaPlayer=null;
    isRunning = false;
    Log.d("RadioService", "Destroyed");
}
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
}
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
    return false;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

public void foregroundService(){
    PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(getApplicationContext(), MainPage.class), PendingIntent.FLAG_UPDATE_CURRENT);
    Notification notification = new Notification.Builder(getApplicationContext())
            .setTicker("Radio.lk")
            .setContentTitle(channelDetails.getChannelName())
            .setContentText("Online Streaming")
            .setSmallIcon(R.mipmap.ic_launcher)
            .addAction(R.mipmap.play, "Play", pi)
            .addAction(R.mipmap.pause, "Pause", pi)
            .addAction(R.mipmap.stop, "Stop", pi)
            .setContentIntent(pi).getNotification();
    notification.flags |= Notification.FLAG_ONGOING_EVENT;
    NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    nm.notify(550,notification);
    startForeground(550, notification);
}
}

尝试清除应用程序上的缓存。。。。。如果可能出现过热问题,也可以尝试快速重启手机。这些只是一些快速提示,但请访问fliptroniks.com了解有关此问题的一些更高级的提示和修复方法

最新更新