[Android] TextToSpeech 버그(??)

TextToSpeech를 이용해서 앱을 개발하고 있는데,

영어 문장을 읽는데, 꼭 한국 사람이 영어 말하는 것처럼 발음이 재생됐다.

onInit 에서

if (tts.isLanguageAvailable(Locale.US) == TextToSpeech.LANG_AVAILABLE)
                tts.setLanguage(Locale.US);
로 언어를 세팅하는 코드를 넣었는데, 이 부분이 정상적으로(?) 작동하지 않았다.

조건문의 isLanguageAvailable 가 0을 리턴해야 정상적으로 실행이 되는데,

1이 리턴되었다.

인터넷 열심히 뒤져서 가져다 쓴 코든데,코드가 잘못 되었다.

아래 doc 문서 보면 위와 같이 사용해도 정상 작동해야 되는데,

http://developer.android.com/reference/ ··· ale.html
public static final Locale US Locale constant for en_US.

버그인지 아니면 폰의 특성을 타는지 정상작동하지 않았다.

Locale enUs = new Locale("en_US");
            if (tts.isLanguageAvailable(enUs) == TextToSpeech.LANG_AVAILABLE)
                tts.setLanguage(enUs);

이렇게 수정해야 정상작동 되었다.

문서상으로는 둘다 같은 코드인데......

왜 아래만 작동할까? 버그일까?



Posted by incree

2014/04/22 01:18 2014/04/22 01:18
, , , , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/325

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

SELECT click_count,comment_count,comments_fbid,like_count,share_count,total_count FROM link_stat WHERE url ='https://developers.facebook.com/docs/reference/fql/link_stat/'


https://developers.facebook.com/docs/reference/fql/link_stat/

Posted by incree

2014/02/28 11:40 2014/02/28 11:40
, , , , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/321

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

1. script tag는 </body> 바로 전에 놓는다.(야후 성능 연구팀의 자바스크립트 제1원칙)
http://developer.yahoo.com/performance/rules.html#js_bottom
http://doublegintonic.tistory.com/123

2. script 갯수를 최소로 줄인다(야후 콤보핸들러 등 사용)

3. link tag 다음에 inline script를 사용하지 않는다.

4. LazyLoad or labjs를 사용하여 script를 동적으로 loading한다
https://github.com/rgrove/lazyload
http://labjs.com/

5. 두번 이상 사용할 전역변수는 지역변수에 할당한다.

6. with 문은 절대 사용하지 않는다. - scope chain 문제

7. try-catch 문은 꼭 필요한 곳만 사용하고 catch문 내의 코드를 최소화 하며
가능하면 메서드를 생성해서 에러 처리를 위임하는게 좋다.

8. eval은 꼭 필요할때만 사용한다.

9. 두번 이상 사용할 중첩 객체 멤버는 지역변수에 할당한다.
(객체 메소드는 제외 - 메소드의 this가 오작동 할 수 있기 때문)

10. DOM은 가장 적게 사용하고, 가능하면 모든 작업을 ECMAScript로 한다.
 - DOM 강의하시는 분 얘기로는 DOM이 더 빠르다고 한다. 어느게 맞는지는 잘...

11. 이벤트 위임(부모 요소로)을 이용해서 이벤트 핸들러 수를 최소한으로 줄인다

12. AJAX 사용시 가능하면 jsonp를 사용하고 부득이한 경우 json을 사용한다.(xml 비추)

13. 개체생성은 리터럴 사용(var a = [1,2,3]; var b="aaa";var c={"a":"b"})
   - 배열값 할당은 []사용(a[0] = 1; push() 사용금지)

14. 정규표현식 최적화

Posted by incree

2014/02/21 10:32 2014/02/21 10:32
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/320

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

[JavaScript] javascript WYSISYG editor

insert html
ie10까지는 pasteHtml을 사용하면 되고,다른 브라우저는 execcommand를 사용하면

되지만 ie11은 둘다 지원하지 않기 때문에 별도의 개발이 필요하다.

하지만 이미 있으니 가져다 쓰면 되겠다.

https://gist.github.com/sergi/126762

insertNodeAtSelection : function(win, insertNode, _container, _pos)
{
// get current selection
var sel = this._getSelection(); var doc = this._getDoc();
 
// get the first range of the selection (there's almost always only
// one range)
var range = sel.getRangeAt(0);
 
// deselect everything
sel.removeAllRanges();
 
// remove content of current selection from document
range.deleteContents();
 
// get location of current selection
var container = _container ? _container : range.startContainer; var
pos = _pos ? _pos : range.startOffset;
 
// make a new range for the new selection
range=doc.createRange();
 
if (container.nodeType==3 && insertNode.nodeType==3) {
// if we insert text in a textnode, do optimized insertion
container.insertData(pos, insertNode.nodeValue);
 
// put cursor after inserted text
range.setEnd(container, pos+insertNode.length);
range.setStart(container, pos+insertNode.length);
 
} else {
var afterNode;
if (container.nodeType==3) {
// when inserting into a textnode we create 2 new textnodes and
// put the insertNode in between
 
var textNode = container; container = textNode.parentNode; var
text = textNode.nodeValue;
 
// text before the split
var textBefore = text.substr(0,pos);
// text after the split
var textAfter = text.substr(pos);
 
var beforeNode = doc.createTextNode(textBefore); afterNode =
doc.createTextNode(textAfter);
 
// insert the 3 new nodes before the old one
container.insertBefore(afterNode, textNode);
container.insertBefore(insertNode, afterNode);
container.insertBefore(beforeNode, insertNode);
 
// remove the old node
container.removeChild(textNode);
} else {
// else simply insert the node
afterNode = container.childNodes[pos];
container.insertBefore(insertNode, afterNode);
}
range.setEnd(afterNode, 0); range.setStart(afterNode, 0);
}
sel.addRange(range); return {c:container, p:pos};
}














검색해도 잘 안나오는 것만
작성중......


1. WebNote(구 spac editor)
http://www.webeditor.kr/
http://www.phpwork.kr/downloads/viewdow ··· Fwebnote

2. jwysiwyg
https://github.com/jwysiwyg/jwysiwyg
jQuery 기반

3. cheditor(유료)
http://www.chcode.com/products/cheditor.shtml
http://www.chcode.com/cheditor/demo.shtml

4. jqte
http://jqueryte.com/
http://jqueryte.com/demos



execCommand 테스트
http://www.quirksmode.org/dom/execCommand/
브라우저 호환성
http://www.quirksmode.org/dom/execCommand.html


http://www-archive.mozilla.org/editor/midas-spec.html


http://msdn.microsoft.com/en-us/library/aa741314%28VS.85%29.aspx
http://msdn.microsoft.com/en-us/library/aa969729%28v=vs.85%29.aspx#basic
http://msdn.microsoft.com/en-us/library/ms536419%28v=vs.85%29.aspx


HTML Clipboard Format
http://msdn.microsoft.com/en-us/library/aa767917%28v=vs.85%29.aspx



ie inserthtml
http://stackoverflow.com/questions/3398378/execcommand-inserthtml-in-internet-explorer
http://stackoverflow.com/questions/6690752/insert-html-at-caret-in-a-contenteditable-div/6691294#6691294
http://jsfiddle.net/timdown/jwvha/527/


Rich-Text Editing in Mozilla
https://developer.mozilla.org/en/docs/Rich-Text_Editing_in_Mozilla

Posted by incree

2014/01/11 08:41 2014/01/11 08:41
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/251

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

// 자바 스크립트
FB.getLoginStatus(function(response) {
    if (response.status == "connected"){
        // 좋아요 여부 확인
        FB.api('/me/likes/likeId', function(likeResponse) {
            if(likeResponse == null || likeResponse == undefined || likeResponse.data[0] == null || likeResponse.data[0] == undefined) {
                setNotliked();
            }
            else {
                setLiked();
            }
        });
    }
    else if (response.status == "not_authorized") {
        console.debug(response);
    }
    else {
        console.debug(response);
    }
});


// php signed request
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

if($data["page"]["liked"]) {
    /* is pan */
}
else {
 /* Not Fan */
}

/*

Array
(
    [algorithm] => HMAC-SHA256
    [issued_at] => 1387699889
    [page] => Array
        (
            [id] => **6***0677***56
            [liked] => 1
            [admin] =>
        )
    [user] => Array
        (
            [country] => kr
            [locale] => en_US
            [age] => Array
                (
                    [min] => 21
                )
        )
)
*/


// php api
$fbObj = new FaceBook(array('appId' => $appId, 'secret' => $appSecret, 'cookie' => true));
$isPageLike = $fbObj->api("/me/likes/$pageId");
or
$isPageLike = $fbObj->api("/$uid/likes/$pageId");
    if($isPageLike['data'][0]) {
    /* is pan */
}
else {
 /* Not Fan */
}

Posted by incree

2013/12/22 17:13 2013/12/22 17:13
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/164

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

[PHP] Apache mod_rewrite 사용하기

./configure --enable-rewrite

사용자 삽입 이미지


<Directory "/document_root">
        AllowOverride FileInfo   # or All
    </Directory>

RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9])$ $1.php
# 희안하게 RewriteBase 를 설정안하면 작동을 안한다. 원래 그런가...


# 텍스트규브 .htaccess
#<IfModule mod_url.c>
#CheckURL Off
#</IfModule>
#SetEnv PRELOAD_CONFIG 1
RewriteEngine On
RewriteBase /tc/
RewriteRule ^(thumbnail)/([0-9]+/.+)$ cache/$1/$2 [L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(cache)+/+(.+[^/]).(cache|xml|txt|log)$ - [NC,F,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ rewrite.php [L,QSA]



Posted by incree

2013/10/30 15:34 2013/10/30 15:34
,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/290

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

// 페이지 기본 정보 읽어오기
FB.api('/' + pageId, function(response) {
    console.log(response);
});

// 페이지의 모든 feed 읽어오기
FB.api({
        method: 'fql.query',
        query: 'SELECT * FROM stream WHERE source_id=' + pageId + ' LIMIT 1000'
    },
    function(response) {
        console.log(response);
    }
);

// 페이지 owner가 작성한 feed 읽어오기
FB.api({
        method: 'fql.query',
        query: 'SELECT * FROM stream WHERE filter_key='owner' AND source_id=' + pageId
    },
    function(response) {
        console.log(response);
    }
);

// 다른 사용자가 페이지에 작성한 feed 읽어오기(filter_key만 할 경우 owner이 작성한 것도 가져오는 경우가 있다. 따라서 actor_id 조건과 같이 사용)
FB.api({
        method: 'fql.query',
        query: 'SELECT * FROM stream WHERE filter_key='others' AND actor_id!=' + pageId + ' AND source_id=' + pageId
    },
    function(response) {
        console.log(response);
    }
);

// 페이지의 feed에 달린 모든 댓글 가져오기
FB.api({
        method: 'fql.query',
        query: 'SELECT * FROM comment WHERE post_id IN (SELECT post_id FROM stream WHERE source_id=' + pageId + ')'
    },
    function(response) {
        console.log(response);
    }
);

// 페이지의 feed에 달린 댓글에 달린 답글 모두 가져오기
FB.api({
        method: 'fql.query',
        query: 'SELECT * FROM comment WHERE parent_id IN (SELECT id FROM comment WHERE post_id IN (SELECT post_id FROM stream WHERE source_id=' + pageId + ')'
    },
    function(response) {
        console.log(response);
    }
);

Posted by incree

2013/10/28 11:50 2013/10/28 11:50
, , , , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/289

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

.fb_edge_widget_with_comment span { height: 21px !important; overflow: hidden; }

Posted by incree

2013/10/27 05:26 2013/10/27 05:26
, , , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/288

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

[SNS] 페이스북 page tabapp signed request

page tabapp에서 signed request를 받으려면

페이지 탭 URL, 페이지 탭 URL (HTTPS 보안) 설정시 주의

마지막 슬래쉬 없이 디렉토리명으로 끝나면 받을 수 없다

원래 주소가 http://www.incree.com/tabapp/index.php 일 경우

웹서버 설정에 따라 http://www.incree.com/tabapp 와 같이 입력해도

접속은 되지만 signed request 는 받을 수 없다

받드지 전체 url을 입력하거나 http://www.incree.com/tabapp/와 같이 입력해야 된다

Posted by incree

2013/10/27 02:45 2013/10/27 02:45
, , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/287

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

[PHP] Apache, MySQL, PHP install

1. mysql 설치
http://forums.mysql.com/read.php?11,153632,153632

yum install mysql mysql-server mysql-devel
chgrp -R mysql /var/lib/mysql
chmod -R 770 /var/lib/mysql

2. apache 설치
http://httpd.apache.org/download.cgi
http://apr.apache.org/download.cgi
http://package/forge.net/projects/pcre/files/pcre/
http://www.openssl.org/package/

cd /package/
tar -zxvf httpd-2.4.6.tar.gz
tar -zxvf apr-1.4.8.tar.gz
tar -zxvf apr-util-1.5.2.tar.gz
tar -zxvf pcre-8.33.tar.gz
tar -zxvf openssl-1.0.1e.tar.gz

cd /package/
mv apr-1.4.8 /package/httpd-2.4.6/srclib/apr
mv apr-util-1.5.2 /package/httpd-2.4.6/srclib/apr-util

cd /package/pcre-8.33
./configure
make
make install

cd /package/openssl-1.0.1e
./config
make
make install


cd /package/httpd-2.4.6
./configure --enable-module=all --enable-so --prefix=/usr/local/apache2 --enable-modules=ssl --enable-ssl --with-ssl=/usr/local/ssl   --enable-module=most
make
make install


3. php 설치
http://www.php.net/downloads.php
http://www.xmlsoft.org/downloads.html
http://sourceforge.net/projects/mcrypt/
http://code.google.com/p/quirkysoft/downloads/detail?name=jpegsrc.v6b.tar.gz&can=2&q=
http://curl.haxx.se/download.html

cd /package/
tar -zxvf php-5.5.5.tar.gz
tar -zxvf libmcrypt-2.5.8.tar.gz
tar -zxvf libxml2-2.9.1.tar.gz
tar -zxvf jpegsrc.v6b.tar.gz
tar -zxvf curl-7.33.0.tar.gz

cd /package/
yum install freetype-devel
yum install libjpeg-turbo-devel
yum install libpng-devel

cd /package/libmcrypt-2.5.8
./configure
make
make install

cd /package/libxml2-2.9.1
./configure
make
make install

cd /package/jpeg-6b
mkdir /usr/local/man/man1
./configure
make
make install

cd /package/curl-7.33.0
./configure
make
make install


cd /package/php-5.5.5
./configure --prefix=/usr/local/php5 --with-openssl --with-apxs2=/usr/local/apache2/bin/apxs --enable-ftp --disable-debug --with-zlib --with-jpeg-dir=/usr/local --with-gd --enable-mbstring --enable-sockets --with-mcrypt=/usr/local --with-curl --with-mysql --enable-pdo --with-pdo-mysql --enable-zip --enable-gd-native-ttf --with-freetype-dir=/usr/include/freetype2 --enable-exif
make
make install

4. apache conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 주석제거
LoadModule ssl_module modules/mod_ssl.so 주석제거


5. start
service mysqld start
/usr/local/apache2/bin/apachectl start

Posted by incree

2013/10/26 15:19 2013/10/26 15:19
, ,
Response
0 Trackbacks , 0 Comments
RSS :
http://www.incree.com/tc/incree/rss/response/286

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

« Previous : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : ... 14 : Next »

Notices

Archives

Authors

  1. incree

Recent Trackbacks

Calendar

«   2017/12   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Site Stats

Total hits:
435939
Today:
114
Yesterday:
230