public void doScene(UploadVoiceContext voiceContext) { if ((voiceContext.mStatus != 0) && (voiceContext.mStatus != 4)) { Log.e("NetSceneUploadVoice", "doScene status error, status = " + voiceContext.mStatus); } else { voiceContext.mStatus = 1; this.mVoiceContext = voiceContext; this.mVoiceContext.mScene = this; if (mTimerObject == null) { //this.mTimerObject = new System.Timers.Timer(); //this.mTimerObject.Elapsed += new ElapsedEventHandler((o,e) => NetSceneUploadVoice.onTimerHandler(this,new TimerEventArgs(this))); //this.mTimerObject.Interval = 1000; //new System.Timers.ElapsedEventHandler(NetSceneUploadVoice.onTimerHandler); //mTimerObject.Start(); this.mTimerObject = TimerService.addTimer(1, new EventHandler(NetSceneUploadVoice.onTimerHandler), 0, -1, new TimerEventArgs(this)); this.mTimerObject.start(); } } }
public void dispatchVoiceHandler() { UploadVoiceContext mVoiceContext = this.mVoiceContext; if (mVoiceContext != null) { if (mVoiceContext.isFinished()) { Log.e("NetSceneUploadVoice", "completed already, close netscene.. "); this.doSceneFinished(0); } else if (mVoiceContext.isInvalidShortVoice())// && mVoiceContext.isRecordEnd() { mVoiceContext.mStatus = 4; Log.e("NetSceneUploadVoice", "complete with short voice , ignored.. "); this.doSceneFinished(3); } else if (mVoiceContext.isSaveCompleted() && mVoiceContext.isSendCompleted()) { mVoiceContext.mStatus = 5; this.doSceneFinished(1); } else if (mVoiceContext.isSaveCompleted() && (mVoiceContext.mStatus == 4)) { Log.e("NetSceneUploadVoice", "save completed, but send error. "); this.doSceneFinished(2); } else { this.checkRecorderSaver(); this.checkNetScene(); } } }
private static void onSceneFinished(UploadVoiceContext context) { if (context.mStatus == 5) { //UploadVoiceContextLoader.resetIntervalLimit(); Log.i("UploadVoiceService", "ALL completed, clientmsgid = " + context.mClientMsgId); } else if (context.mStatus == 4) { Log.e("UploadVoiceService", "on error, clientmsgid = " + context.mClientMsgId); } else { Log.e("UploadVoiceService", "status error, clientmsgid = " + context.mClientMsgId); } }
public void doSceneFinished(int finishType) { this.mTimerObject.stop(); //mTimerObject.Close(); //mTimerObject.Dispose(); this.mTimerObject = null; if (finishType != 0) { this.mVoiceContext.onFinished(finishType); if (this.mOnSceneFinished != null) { this.mOnSceneFinished(this.mVoiceContext); } } this.mVoiceContext.mScene = null; this.mVoiceContext = null; }
// public bool doSceneBegin(string toUserName) // { // if (UploadVoiceRecorder.isRunning()) // { // Log.e("UploadVoiceService", "scene cannot begin in recording. "); // return false; // } // string hashString = MD5Core.GetHashString(toUserName + Util.getNowMilliseconds()); // UploadVoiceContext context = UploadVoiceContext.createByClientMsgID(hashString); // if (context == null) // { // Log.e("UploadVoiceService", "create upload voice context failed. "); // return false; // } // Log.i("UploadVoiceService", "cmd to scene begin, toUserName = "******" , clientMsgId = " + hashString); // context.mUserName = toUserName; // context.mStatus = 0; // UploadVoiceContextMgr.getInstance().putToHead(context); // this.checkReadyContextDispatcher(); // UploadVoiceRecorder.start(context); // return true; // } public bool doSceneDirectWithoutRecord(string toUserName, int voiceTimeLength, byte[] buffer, int EncodeType) { if (voiceTimeLength > 60) { voiceTimeLength = 60; } if (voiceTimeLength < 2) { voiceTimeLength = 2; } //voiceTimeLength = buffer.Length; voiceTimeLength *= 0x3e8; string hashString = MD5Core.GetHashString(toUserName + Util.getNowMilliseconds()); UploadVoiceContext context = UploadVoiceContext.createByClientMsgID(hashString); if (context == null) { Log.e("UploadVoiceService", "create upload voice context failed. "); return(false); } Log.i("UploadVoiceService", "cmd to scene begin, toUserName = "******" , clientMsgId = " + hashString); //int count = (voiceTimeLength * 7) / 10; //byte[] buffer = new byte[count]; //for (int i = 0; i < count; i++) //{ // buffer[i] = (byte) (i | 1); //} context.mCreateTime = (int)(Util.getNowMilliseconds() / 1000.0); context.mUserName = toUserName; context.EncodeType = EncodeType;//sikl context.appendOutputData(buffer, 0, buffer.Length); context.mVoiceTimeLength = voiceTimeLength; //context. context.mEndFlag = 1; context.mStatus = 0; UploadVoiceContextMgr.getInstance().putToTail(context); this.checkReadyContextDispatcher(); return(true); }
public static void onVoiceContextDispatcher(object sender, EventArgs e) { UploadVoiceContextMgr.getInstance().clearnFinishedContext(); if (UploadVoiceContextMgr.getInstance().getCount() <= 0) { //UploadVoiceContextLoader.checkCleanMsgTrans(); if (UploadVoiceContextMgr.getInstance().getCount() <= 0) { closeDispatcherTimer(); return; } } if (UploadVoiceContextMgr.getInstance().countRunningContext() < MAX_RUNNING) { UploadVoiceContext voiceContext = UploadVoiceContextMgr.getInstance().getFirstContextNeedHandle(); if (voiceContext != null) { Log.i("UploadVoiceService", "new task startup, clientmsgid = " + voiceContext.mClientMsgId); NetSceneUploadVoice voice = new NetSceneUploadVoice(); voice.mOnSceneFinished += new onSceneFinishedDelegate(UploadVoiceService.onSceneFinished); voice.doScene(voiceContext); } } }