2013년 5월 21일 화요일

2013년 5월 21일 에브리싱 태국 출시!

Android + iPhone + CMS + Database 설계/구축 까지 완전 풀세트로 진행해서 
shipping 된 프로젝트는 이번에 진행한 에브리싱이 처음이라 두고두고 기억에 남을 것 같다.

5월 30일에는 글로벌 오픈합니다. 


부디 가라오케 앱의 종결자가 되어다오!










2013년 5월 16일 목요일

Android Recording option

Android 의 경우 디바이스 fragmentation이 심해서 hardware 칩셋의 기능 제공 여부에 의해 영향을 받는 API가 많다.

audio/video recording 관련 API들도 그중 하나로 다루기가 꽤 까다로운 편.

금번 everysing 프로젝트에서도 관련 이슈가 발생했는데 audio recording 과 관련하여 최선의 API call을 정리하려고 한다.


최근 수정일: 2013/05/21

Recommended API calls to record with better quality in Android.

mRec = new MediaRecorder();
mRec.setAudioSource(MediaRecorder.AudioSource.MIC);

boolean isSuperiorModel = false;

if(Build.VERSION.SDK_INT >= 16) {
        isSuperiorModel = true;
}

if (isSuperiorModel == true) {
        try {
                mRec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        } catch (Exception e) {
                mRec.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
        }
}
else {
        mRec.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
}


if (isSuperiorModel == true) {
        try {
                mRec.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
        } catch (Exception e) {
                mRec.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
        }
}
else {
        mRec.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
}

if (isSuperiorModel == true) {
        try {
                mRec.setAudioEncodingBitRate(96000);
        } catch (Exception e) {
        }
}

if (isSuperiorModel == true) {
        boolean setAudioSamplingRateSucceed = false;
        try {
                mRec.setAudioSamplingRate(96000);
                setAudioSamplingRateSucceed = true;
        } catch (Exception e) {
        }
        if (setAudioSamplingRateSucceed == false) {
                try {
                        mRec.setAudioSamplingRate(44100);
                } catch (Exception e) {
                }
        }
}


mTempFile = Manager_File.createTempCacheFile();
mRec.setOutputFile(mTempFile.getPath());
mRec.prepare();



The sampling rate really depends on the format for the audio recording, as well as the capabilities of the platform. For instance, the sampling rate supported by AAC audio coding standard ranges from 8 to 96 kHz, the sampling rate supported by AMRNB is 8kHz, and the sampling rate supported by AMRWB is 16kHz.


2013년 5월 15일 수요일

저녁 시간대 AWS S3 속도 저하 현상.

Amazon Cloud의 S3는 바이너리 파일을 저장하기에 매우 편리하고 안정적인 서비스임에는 분명하지만, 그 목적은 전송 보다는 저장쪽에 있는 것 같다.

저녁 7시 부터 3시간 가량 S3에서 파일을 다운 받을 때 속도가 급격히 느려지는 현상이 발생했다.
이용하는 회선에 따른 속도차도 존재하는 것 같은데, 해외망이 잘 갖추어져 있다는 KT 회선에서 의외로 속도가 가장 느려진다.
LG 회선에서는 속도 저하 현상이 비교적 덜 했다.

결국 CDN 역할을 하는 CloudFront를 이용하기로 결정.


타이밍 좋게도 5월 1일부터 서울에서 CloudFront edge server가 운영( http://aws.amazon.com/ko/aws-news-20130501/ )된다고 하니,
속도 향상을 기대해 본다.