안드로이드 앱을 짜다 보면, 미디어의 불륨을 조정해야 할 때가 있습니다.
그런데 불륨 조정을 누르면 당황스럽게 벨소리 볼륨이 조정이 됩니다.
그걸 다른걸로 조정하고 싶을 경우에는 아래와 같이 onCreate에 setVolumeControlStream을 넣어 주시면 됩니다.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setVolumeControlStream(AudioManager.STREAM_MUSIC); // 하드웨어 볼륨이 미디어 볼륨을 조절
}
아래는 2가지 인데.. 한개는 사전에서 음성을 받아 오는 거고, 2번째는 구글 번역에서 받아 옵니다.
둘다 음성 파일의 파일 목록이 필요 합니다.
구글 사전에서 음성 파일 받아 오기.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import string
import os
import shutil
import codecs
if len(sys.argv) is 1:
print >> sys.stderr, '읽을 파일명을 입력해 주세요'
print ''
print '* 파일의 내용'
print '\t[원본 파일명]
print ''
print '* 사용예'
print '\t./getWordSound.py [목록 파일 이름]'
exit(1)
try:
f = codecs.open(sys.argv[1], "r", "utf-8") # 파일 오픈
except IOError:
print >> sys.stderr, '그런 파일이 없거나, 열기 에러입니다.'
exit(1)
topath = "mp3"
if os.path.exists(topath) == False:
os.mkdir(topath, 0755)
for line in f.readlines():
word = line.strip('\n\r').strip();
url = "http://www.gstatic.com/dictionary/static/sounds/de/0/"+word+".mp3"
print url
os.system("wget -P "+topath+" "+url)
구글 번역에서 TTS 음성 받아 오기
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import string
import os
import shutil
import codecs
if len(sys.argv) is 1:
print >> sys.stderr, '읽을 파일명을 입력해 주세요'
print ''
print '* 파일의 내용'
print '\t[음성 파일 스크립트]'
print ''
print '* 사용예'
print '\t'+sys.argv[0]+' [목록 파일 이름]'
exit(1)
try:
f = codecs.open(sys.argv[1], "r", "utf-8") # 파일 오픈
except IOError:
print >> sys.stderr, '그런 파일이 없거나, 열기 에러입니다.'
exit(1)
topath = "mp3"
if os.path.exists(topath) == False:
os.mkdir(topath, 0755)
os.chdir(topath)
for line in f.readlines():
script = line.strip()
if script.startswith(u'\ufeff'):
script = script[1:]
url = "\"http://translate.google.com/translate_tts?tl=en&q="+script+"\""
output = "\""+script+".mp3\""
getCommand = "wget -U firefox "+url+" -O "+output
print getCommand
os.system(getCommand)
그런데 이렇게 받은 음성의 라이센스를 아시는 분 있으신가요?
구글에 문의를 해 봤는데.. 함흥차사네요..
내 영어가 너무 구린가? ㅜ.ㅜ
:ERROR_TOO_SHORT
echo Your commit has been blocked because your log message was too 1>&2
echo short. Please write a log message describing the purpose of your 1>&2
echo changes and then try committing again. Thanks! 1>&2
goto ERROR_EXIT
:ERROR_ISSUE
echo empty issue, please fill issue number 1>&2
echo changes and then try committing again. Thanks! 1>&2
echo example : #000 hello world 1>&2
goto ERROR_EXIT
:ERROR_EXIT
exit /b 1
:NORMAL_EXIT
exit 0
17, 18번 행이 이슈트래커용입니다.
그리고, 36bit용 windows를 설치 하신 분들은 13번 행에서 (x86)을 빼 주셔야 합니다.
/* jQuery 부분 */
jQuery.noConflict(); // 다른 라이브러리와 충돌을 방지한다.
jQuery(document).ready(function(){ // 문서가 모두 읽힌 후에 다음을 실행
jQuery("blockquote").each( function() { //blokquote가 사용한 태그
if (jQuery(this).attr('class').substr(0,5)=='brush')
// 그중 클래스명이 brush로 시작하는 것을 찾아 적용
{
var temp = jQuery(this).html(); // 내용 복사
temp = temp.replace(/\n/gi, "");
temp = temp.replace(/<BR>/gi, "\n");
temp = temp.replace(/<BR \/>/gi, "\n");
//temp = '<pre class="'+ jQuery(this).attr('class') + '">'+temp+'</pre>'
temp = '<script type="syntaxhighlighter" class="'+ jQuery(this).attr('class') + '"><![CDATA['+temp+']]><\/script>'
jQuery(this).after(temp); // 뒤에 새 작성된 pre 또는 script태그로 붙인다.
jQuery(this).remove(); // 기존의 인용태그 삭제
}
});
/* SyntaxHighlighter 부분 */
SyntaxHighlighter.defaults['toolbar'] = false; // 툴바 안 보기
SyntaxHighlighter.all();
});
</script>
jQuery는 구글의 apis에서 가져다 오도록 했습니다. 현재 최신 버전이 1.4.4입니다.
그리고, 41번과 42번 줄에 보시면, pre태그와 script태그를 둘중 하나를 선택해서 사용 하시면 되는데.. 여기를 참고 하시고 선택해서 사용하세요.
저 같은 경우에는 script 태그를 선택 했습니다.
그리고 사용하는 방법은 매우 간단해 졌습니다.
텍스트 모드에서 붙여 넣기를 한 후,
인용구<Ctrl+Q>를 선택 하시면 됩니다.
그리고 HTML 편집 모드로 들어 가셔서 blockquote를 찾으셔서, 태그에 적당한 brush를 넣어 주시면, 코드가 깔끔하게 들어 갑니다.
추가로 그냥.. br을 빼는 옵션이 있어서 jquery를 빼고
SyntaxHighlighter.config.stripBrs = true;
이 줄 만 추가해 주시고,이전 버전 처럼 사용 하셔도 별 상관은 없습니다.
하지만, html편집모드로 왔다갔다 할 때, 스페이스가 들어가는 문제가 있습니다.
그리고, SyntaxHightlighter의 버그인지.. ie에서는 한줄로 표시가 되네요 -_-;;
그리고 ie에서 html 편집모드로 왔다갔다 하시면, blockquote 태그가 대문자로 바뀌는 경우가 있습니다.
SyntaxHighlighter를 사용하실때는 파이어폭스나 크롬을 사용해 주세요.
아무런, 웹서버 설치, 에디터기도 설치 하지 않고, 바로 웹브라우저에서 스크립트 코드를 짤 수 있는 사이트 입니다.
PHP, C#/.NET 서버의 설치도 필요 없습니다.
바로 실행과 디버그까지 가능 합니다.
그리고, 웹 호스팅도 가능해서 무료로 사용할 경우 7일까지 사용 가능하고, 그 이후는 유료로 전환해서 사용 하면 됩니다.
정말 최고의 통합이 아닌가 싶습니다.
계정만 있으면, 서버 & 코딩 & 서비스 까지 완료가 되니까요..
매달 칵테일 파티를 열고 있습니다.
그리고 매달 최고의 금발 소녀를 탑 10을 뽑습니다.
선발 기준은 금발에 바스트사이즈가 3이상 ^^;;;;
그런데 매달 이 아가씨들을 뽑고 리스트를 갱신 하려니.. 귀찮습니다.
그래서 이걸 쿼리 한방으로 해결 할려고 합니다.
어떻게 할까요?
DROP TABLE IF EXISTS best_10_blond_girls; CREATE View best_10_blond_girls as SELECT concat(`name`,' has breast size = ', breast _size) as girls, hotness
from girls
WHERE hair_color like blond and breast _size > 3
ORDER BY hotness desc
LIMIT 10
예전 포스팅 중에서 codeigniter(이하 ci)에서 firephp 사용하기에 대한 포스팅이 있습니다.
그런데 사용할때 마다, $this->firephp->log('내용') 이런식으로 길게 사용하는게 귀찮아서 helper를 제작 했습니다.
아.. 그리고 뒤에 있는 내용들은 일반적으로 사용할 수 있는 debug도 추가해 봤습니다.
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
// Ajax Request일 경우
echo 'This is an ajax request!';
exit;
}
// Ajax Request가 아닐 경우
echo 'This is clearly not an ajax request!';
샘플코드를 실행 하시면, 알림창이 하나 똑~ 뜰겁니다.. 살포시 닫아 주시고, 오른쪽 하단의 파이어버그 버튼을 눌러주세요. 그리고 스크립트 탭(?)을 눌러 줍니다. 그러면, 스크립트 코드가 나옵니다. 그리고 all옆에 있는 콤보를 클릭하면, 현재 파일에서 포함된 스크립트 목록이 나옵니다. 여기서 test.js를 선택 해 줍니다. 일반적으로 사이트를 제작하면서 보면, 스크립트 파일을 여러게 포함하게 되니까.. 이런 파일들은 여기서 찾아서 선택해 주시면 됩니다.
그리고 샘플소스에서 20번째 줄 옆을 클릭해서 브레이크 포인트를 걸어 줍니다. 그리고 F5를 눌러서 페이지를 새로읽기를 합니다.
그러면, 아래 스샷과 같이 브레이크 포인트가 걸리게 됩니다. 그리고 옆 창에 있는 감시를 눌러 주시면, 현재 브레이크 포인트에서 설정된 값들이 출력되게 됩니다.
그러면 브레이크 포인트 이동.. 이동은 상단의 버튼으로 하시면 됩니다.
순서대로 설명 드리면, 실행, 함수안으로(F11), 한줄씩 실행(F10), 함수 밖으로.. 이렇게 구성되어 있습니다. 이렇게 현재의 값을 보면서, 스크립트 디버깅을 하시면, 훨씬 편하게 하실 수 있습니다.
그러면 파폭의 오른쪽 하단에 아래와 같은 메시지가 출력 됩니다. 오류가 2개나 있답니다. ^^
이건 console.warn과 console.error때문입니다.
오류가 있다고 하니 봐야 겠죠? 파이어버그에서 콘솔 탭을 클릭해 봅니다.
그러면 아래와 같이 출력이 되어 있을 겁니다. 혹시 출력이 안 되어 있다면, F5로 다시 읽기해 주세요.. 가끔 그런 경우가 있더라구요.
이걸 사용하면 alert이나 스트링 출력으로 하던 디버깅의 수고를 덜 수 있습니다.
그런데 주의 할 점은 이 console 명령어가, 데브툴이 설치되어 있지 않은 브라우저에서는 동작을 안 하고.. 스크립트가 멈추는 경우가 있습니다. 디버깅 이후에는 오류 알림 빼고는 삭제 해 주는 것을 추천합니다.
명령어도 실행해 보자
파이어버그의 또 다른 감정은 스크립트의 값을 바로 보고, 함수를 실행해 볼 수 있다는 겁니다.
우선 fileName에 뭐가 들어 있는지 보고 싶다면, 콘솔의 오른쪽 창에 fileName이라고 타이핑을 하고 하단에 있는 실행을 클릭하거나, Ctrl+엔터를 누르면 실행이 됩니다.
실행을 해 보면, 위와 같이 fileName에 들어 있는 내용을 확인 해 보실 수 있습니다.
다른 다음에는 stack에는 뭐가 들어 있는지 확인해 보겠습니다.
값이 저런식으로 들어 있군요..
그러면, 값을 추가 하고 내용을 보겠습니다.
이런식으로 2줄을 쓰고 실행을 해도 연속으로 실행이 됩니다.
여기서 좀 더 응용을 하면, 아까 브레이크 포인트를 건 곳을 다시 실행해 보고 싶으시다면, 콘솔창에서 브레이크 걸어 둔 함수를 다시 실행해서 하실 수 있죠..
이 외에도 파이어버그의 기능이 많은데.. 자바스크립트를 디버그 하는 기능은 이정도까지 설명하겠습니다