2016-07-22 23 views
0

由於某些原因,我的代碼中的導入部分的結尾說不能解析'音頻控制器'等。我該如何解決? 淺藍色導入部件是其中錯誤發生由於某些原因,我的代碼在導入部分的結尾說不能解析'AudioController'等。我該如何解決?

package com.sinch.android.rtc.sample.video; 

import com.sinch.android.rtc.AudioController; 
import com.sinch.android.rtc.ClientRegistration; 
import com.sinch.android.rtc.Sinch; 
import com.sinch.android.rtc.SinchClient; 
import com.sinch.android.rtc.SinchClientListener; 
import com.sinch.android.rtc.SinchError; 
import com.sinch.android.rtc.video.VideoController; 
import com.sinch.android.rtc.calling.Call; 
import com.sinch.android.rtc.calling.CallClient; 
import com.sinch.android.rtc.calling.CallClientListener; 

import android.app.Service; 
import android.content.Intent; 
import android.os.Binder; 
import android.os.IBinder; 
import android.util.Log; 

public class SinchService extends Service { 

    private static final String APP_KEY = "fhbffhskjddscf05049a5c566e"; 
    private static final String APP_SECRET = "ghgkdgsfysfghsdsd"; 
    private static final String ENVIRONMENT = "sandbox.sinch.com"; 

    public static final String CALL_ID = "CALL_ID"; 
    static final String TAG = SinchService.class.getSimpleName(); 

    private SinchServiceInterface mSinchServiceInterface = new SinchServiceInterface(); 
    private SinchClient mSinchClient; 
    private String mUserId; 

    private StartFailedListener mListener; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
    } 

    @Override 
    public void onDestroy() { 
     if (mSinchClient != null && mSinchClient.isStarted()) { 
      mSinchClient.terminate(); 
     } 
     super.onDestroy(); 
    } 

    private void start(String userName) { 
     if (mSinchClient == null) { 
      mUserId = userName; 
      mSinchClient = Sinch.getSinchClientBuilder().context(getApplicationContext()).userId(userName) 
        .applicationKey(APP_KEY) 
        .applicationSecret(APP_SECRET) 
        .environmentHost(ENVIRONMENT).build(); 

      mSinchClient.setSupportCalling(true); 
      mSinchClient.startListeningOnActiveConnection(); 

      mSinchClient.addSinchClientListener(new MySinchClientListener()); 
      mSinchClient.getCallClient().addCallClientListener(new SinchCallClientListener()); 
      mSinchClient.start(); 
     } 
    } 

    private void stop() { 
     if (mSinchClient != null) { 
      mSinchClient.terminate(); 
      mSinchClient = null; 
     } 
    } 

    private boolean isStarted() { 
     return (mSinchClient != null && mSinchClient.isStarted()); 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return mSinchServiceInterface; 
    } 

    public class SinchServiceInterface extends Binder { 

     public Call callUserVideo(String userId) { 
      return mSinchClient.getCallClient().callUserVideo(userId); 
     } 

     public String getUserName() { 
      return mUserId; 
     } 

     public boolean isStarted() { 
      return SinchService.this.isStarted(); 
     } 

     public void startClient(String userName) { 
      start(userName); 
     } 

     public void stopClient() { 
      stop(); 
     } 

     public void setStartListener(StartFailedListener listener) { 
      mListener = listener; 
     } 

     public Call getCall(String callId) { 
      return mSinchClient.getCallClient().getCall(callId); 
     } 

     public VideoController getVideoController() { 
      if (!isStarted()) { 
       return null; 
      } 
      return mSinchClient.getVideoController(); 
     } 

     public AudioController getAudioController() { 
      if (!isStarted()) { 
       return null; 
      } 
      return mSinchClient.getAudioController(); 
     } 
    } 

    public interface StartFailedListener { 

     void onStartFailed(SinchError error); 

     void onStarted(); 
    } 

    private class MySinchClientListener implements SinchClientListener { 

     @Override 
     public void onClientFailed(SinchClient client, SinchError error) { 
      if (mListener != null) { 
       mListener.onStartFailed(error); 
      } 
      mSinchClient.terminate(); 
      mSinchClient = null; 
     } 

     @Override 
     public void onClientStarted(SinchClient client) { 
      Log.d(TAG, "SinchClient started"); 
      if (mListener != null) { 
       mListener.onStarted(); 
      } 
     } 

     @Override 
     public void onClientStopped(SinchClient client) { 
      Log.d(TAG, "SinchClient stopped"); 
     } 

     @Override 
     public void onLogMessage(int level, String area, String message) { 
      switch (level) { 
       case Log.DEBUG: 
        Log.d(area, message); 
        break; 
       case Log.ERROR: 
        Log.e(area, message); 
        break; 
       case Log.INFO: 
        Log.i(area, message); 
        break; 
       case Log.VERBOSE: 
        Log.v(area, message); 
        break; 
       case Log.WARN: 
        Log.w(area, message); 
        break; 
      } 
     } 

     @Override 
     public void onRegistrationCredentialsRequired(SinchClient client, 
       ClientRegistration clientRegistration) { 
     } 
    } 

    private class SinchCallClientListener implements CallClientListener { 

     @Override 
     public void onIncomingCall(CallClient callClient, Call call) { 
      Log.d(TAG, "Incoming call"); 
      Intent intent = new Intent(SinchService.this, IncomingCallScreenActivity.class); 
      intent.putExtra(CALL_ID, call.getCallId()); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      SinchService.this.startActivity(intent); 
     } 
    } 

} 

這是在其中的代碼是在應用程序中的部分:App

三江源和幫助將不勝感激。 三江源

+2

你使用Gradle?如果是這樣,請分享您使用的依賴關係?你可以嘗試清理應用程序? – Eenvincible

回答

0

沒有看到的庫/ sinch-Android的RTC-3.8.0-VIDEO-SNAPSHOT.jar文件在您的項目folder.You可能沒有設置正確。創建一個libs文件夾,然後把這個jar文件放進去。

如果仍然沒有工作,我建議刪除或註釋掉,需要從這個庫/ sinch-Android的RTC-3.8.0-VIDEO-SNAPSHOT.jar,然後按照這個代碼的類guide安裝外部jar文件,確保您的應用程序編譯,然後放回去,你需要從這個庫/代碼類sinch-Android的RTC-3.8.0-VIDEO-SNAPSHOT.jar

相關問題