태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

안드로이드용 영어 어학기 Smart LC

스마트LC 소개 링크:
http://blog.ehxm.net/123

티스토어 링크:
http://bit.ly/awW3XW

[안드로이드] 영어 어학기 어플 ( Android )

Posted by EHXM. Posted in " 안드로이드/News "2010/08/15 23:02


안드로이드 Android, 넥서스원, 디자이어, 갤럭시A, 갤럭시S, 모토로이에서 사용 가능합니다.
영어 듣기 공부 많이들 하시나요? 따로 어학기를 장만하시기는 비용이 들죠?
스마트폰에서 MP3 파일을 터치를 이용해서 자유롭게 듣을 수 있는 영어 어학기 어플입니다.

동아리 모임중에 촬영한 영상이라 약간 시끄러운데요, 조용한 장소에서 다시 찍어야 겠네요;
영상을 보시면 대략적인 기능을 확인해 볼 수 있습니다.

토익 같은 리스닝이라면 문제별로 Waveform으로 처음과 끝을 알 수 있어 편리하게 원하는 곳으로 이동이 가능하구요,
드래그, 탐색바, 버튼을 이용한 세가지 방식의 이동이 가능합니다.
버튼을 이용한 이동은 설정탭에서 시간을 자유롭게 정할 수 있습니다.
구간반복도 드래그를 통하여 정확하게 설정이 가능하고 바로가기 추가로 해당 구간으로 쉽게 이동할 수 있습니다.



새로 업데이트된 버전의 동영상입니다.


음악 선택과 관리가 더욱 편리해진 폴더별 자동 리스팅 기능의 새로운 업데이트 버전이 검증 중 입니다.



아래 주소로 티스토어에서 판매중입니다.
http://bit.ly/awW3XW


문의사항이 있으시면 트위터로 문의해주시기 바랍니다.

http://twitter.com/ehxm

저작자 표시

관련 TAG로 검색해보세요. : android, SKT, Tstore, 디자이어, 모토로이, 안드로이드, , 어학기

¬ COMMENT [17]

  1. Posted by 김현하2010/06/06 04:27

    꼭 써보고 싶습니다 h850328@gmail.com 좀 보내주세요~

     수정/삭제  댓글쓰기

  1. Posted by 허원석2010/07/04 04:52

    구매자입니다. 앞으로 업데이트를 통해서 많은 부분 개선 해야하겠습니다.

    1. 5~30초 앞뒤 기능만 설정 가능한데, 이 부분을 5~30초라는 제약 없이 사용자가 임으로 설정 가능하게 해주시고, 이전곡과 다음곡 넘어가기도 추가해주세요.

    2. 한곡 재생이 완료되면 다음곡 자동으로 재생가능하게 해주세요.

    개발자가 좀 더 노력을 하시면 매우 유용한 어플이 될거 같습니다.

    3. 현재 해당 기능만으로는 1000원이라는 값어치는 못하지만,,추후 업데이트를 통해
    기능이 좀 더 개선이 되고 세련되진다면 그 값어치를 할 거 같습니다.

    그럼 앞으로 업데이트를 통해 좋은어플 개발해주세요 ^^

     수정/삭제  댓글쓰기

    • BlogIcon EHXM2010/07/04 21:33

      네 좋은 의견 감사합니다.
      개선사항 반영이 가능할 것 같습니다.
      계속 나은 방향으로 업데이트를 하려고 하고 있으나,
      검증이 3~4주 걸리기 때문에 어려움이 많습니다.

      위 사항과 다른 내용이지만 업데이트 버전이 검증중에 있습니다.
      해당 업데이트가 검증 완료되면 주신의견 반영해서 업데이트를 하도록 하겠습니다.

      좋은 의견 주신 점 다시한번 감사 드립니다.

       수정/삭제

  1. Posted by 김태석2010/07/17 16:35

    설치햇는데 재생리스트에 아무것도 안나오는데 어떻게 하는건가요~
    엘씨 파일 mp3 형식으로 들어가 잇거든요 음악재생 프로그램에서는 되는데
    이 프로그램 리스트에서는 안나오네요 알려주세요~ ^^

     수정/삭제  댓글쓰기

    • BlogIcon EHXM2010/07/17 16:56

      사용하시는 휴대폰 기종이 어떻게 되시나요?
      MP3 파일을 USB를 통해 안드로이드 폰에 넣어 주시고,
      사용하시면 되겠습니다.

      모토로이, 디자이어, 갤럭시에서는 잘 사용되고 있습니다.
      혹시나 MP3파일을 안드로이드 폰으로 바로 받으시면 mpga 확장자로 저장되는데 그런 경우는 아닌지요.

      classehxm@gmail.com 이나 twitter.com/ehxm 로도 연락주시면 바로 답변드리겠습니다.

       수정/삭제

  1. Posted by ADRO2010/07/19 13:21

    1.6안되는건가요 안된다면 lg좀 까야겠네요;;;;

     수정/삭제  댓글쓰기

    • BlogIcon EHXM2010/07/19 18:37

      1.6부터 사용가능합니다. 다만 아직은 티스토어에만 이용이 가능하고 곧 안드로이드 마켓에 올릴 예정입니다.

       수정/삭제

  1. Posted by 베타테스터2010/07/28 13:26

    갤S 사용자요.
    미디어 스캐닝 중..... 때문에
    부팅속도가 느려 .nomedia 폴더 생성해서 미디어 스캐닝 막아두었더니
    리스트가 전혀 안나타남.
    ( 외장, 내장메모리에 미디어파일을 많이 두고, 자주 파일을 교체하는 사용자들 다수가 이런 불편 때문에 막아둠 )
    폴더 설정 할 수 있도록 설정 옵션이 필요함.
    예상치 못한 오류가 자주 발생.
    베타버젼도 아니고 참으로 한심스러운 수준의 어플임.

     수정/삭제  댓글쓰기

    • BlogIcon EHXM2010/07/30 05:25

      정상적인경우 미디어 스캐닝을 통해 음악을 찾는것이 맞고
      현재 진행중인 업데이트는 검색된미디어를 폴더별로 리스트로 볼 수 있고 음악이 없는 폴더는 생략하여 필요없는 폴더는 리스트에 나타나지 않도록 간편하게 음악을 찾을 수 있도록 방향을 잡았습니다.
      폴더를 모두 검색해 음악을 찾는 기능은 검토해보도록 하겠습니다. 사용상에 불편을 드려서 죄송합니다.
      참고로 제 경우는 천곡정도를 계속 추가하면서 사용중이고 시스템 상으로 느린점은 발견하지 못했습니다.

      자체 테스트와 SKT 오랜 검증을 통해 티스토어에서 판매되고있습니다. 현재까지 사용자로 부터는 오류가 접수되고 있진 않으나 말씀하신 오류가 있으시면 알려주시면 바로 시정해드리도록 하겠습니다.

      더 나은 모습으로 새로운 업데이트를 검증중에있습니다.

       수정/삭제

  1. Posted by na2010/07/29 18:58

    메일보냈습니다
    답변부탁드립니다

     수정/삭제  댓글쓰기

    • BlogIcon EHXM2010/07/30 05:44

      메일이 도착하지 않았습니다. 다시한번 주소를 확인해주세요. 주소는 classehxm@gmail.com 입니다.

       수정/삭제

    • BlogIcon EHXM2010/08/15 22:49

      좋은 의견 감사드립니다.

       수정/삭제

  1. Posted by 구매희망자2010/08/15 13:35

    모토쿼티에는 불가능 한가요?? 불가능해서 다운로드버튼이 비활성화 되어버리네요...

     수정/삭제  댓글쓰기

    • BlogIcon EHXM2010/08/15 22:52

      지금 업데이트 버전 모토쿼티도 포함해서 검증 중입니다.
      단말의 종류가 늘어나고 있고, SKT에 등록되는 앱의 종류도 다양해 지고 있어서 검증하는데 시간이 많이 걸리네요.
      사용자가 안심하고 사용할 수 있도록 필요한 과정이니 잠시만 기다려 주시면 감사하겠습니다.

       수정/삭제

  1. Posted by 옵큐유저82010/08/26 22:33

    이클레어로 업글된 옵큐에도 사용가능한가요?
    마켓에서는 검색이 안되는군요.

     수정/삭제  댓글쓰기

    • BlogIcon EHXM2010/08/27 00:41

      네 사용은 1.6버전 이후로는 가능합니다만,
      현재는 티스토어에서 판매 중입니다.
      쇼 앱스토어에도 올릴 예정입니다.
      감사합니다.

       수정/삭제

    • BlogIcon EHXM2010/08/27 16:51

      제가 잠시 착각을 했네요.
      옵큐면 U+죠??
      일단 쇼앱스토어는 검증 진행중이고,
      U+ 스토어는 개인 개발자는 등록이 까다로워서 방법을 좀 더 살펴보고 있습니다.

       수정/삭제

여러분의 커뮤니케이션을 기다리고 있습니다.

  1. : 이름
  2. : 홈페이지

  1. : 비밀번호

신기한 Google Voice Search 음성 검색

Posted by EHXM. Posted in " 안드로이드/News "2010/06/16 14:00

  구글의 음성 검색이 이제 한글까지 지원한다고 해서 안드로이드 HTC 폰에서 테스트해 보았습니다. 구글의 음성 검색은 안드로이드 폰 뿐만 아니라 아이폰등 여러가지 플랫폼으로도 이용할 수 있구요. 한글지원은 어느 정도로 잘 되는지 한번 테스트 해 보았습니다.
  설치는 아래 apk 파일을 이용하였습니다. 설치후에 검색키를 누르거나 검색 위젯, 음성검색 앱을 통해서 사용할 수 있습니다.

↓설치파일





 과연 이렇게 동영상처럼 잘 동작할까요? ㅎ



 결과는 놀라울 정도로 인식을 잘 했습니다. GPS로 위치정보도 알 수 있기 때문에 어느지역에 가서 전화번호를 알려고 할때 정말 편리할 것 같네요. "부산 월드컵 응원 장소", "거제1동 교촌 전화번호", "세상이 이렇게 발전 했소"로 검색해봤습니다. "했소"는 사투리라 잘 검색이 안되네요 ㅎ "-입니다." 라고 검색했더니 "- 이미자, -신민아" 등으로 검색 될 때도 있네요 ㅎ. 단어가 인기가 많을 수록 더 우선순위가 높게 검색되는 것 같고 아래와 같이 비슷한 결과를 선택할 수 도 있습니다.


  세상이 이렇게 발전했네요.. 음성인식을 앱으로 사용하면 더욱 더 신기한 앱들이 많이 나올 듯 합니다. 굿!
저작자 표시

관련 TAG로 검색해보세요. : android, 안드로이드, 음성인식

¬ COMMENT [1]

  1. Posted by 김정수2010/07/01 07:20

    와우!

     수정/삭제  댓글쓰기

여러분의 커뮤니케이션을 기다리고 있습니다.

  1. : 이름
  2. : 홈페이지

  1. : 비밀번호

[안드로이드 샘플코드] 미디어 스캐닝 Class

Posted by EHXM. Posted in " 안드로이드/Tech Note "2010/06/10 23:12

수동으로 미디어 스캔을 하는 클래스입니다. 강제 Media Scan Sample Source

import android.content.Context;
import android.media.MediaScannerConnection;
import android.net.Uri;

public class MediaScanner {

        private MediaScannerConnection mediaScanConn = null;

        private MusicSannerClient client = null;

        private String filePath = null;
        
        private String fileType = null;
        
        private String[] filePaths = null;
    /**
     *  Then call the MediaScanner  .scanFile("/sdcard/2.mp3");
     * */
        public MediaScanner(Context context) {
        // Create MusicSannerClient  
                if (client == null) {

                        client = new MusicSannerClient();
                }

                if (mediaScanConn == null) {

                        mediaScanConn = new MediaScannerConnection(context, client);
                }
        }

        class MusicSannerClient implements
                        MediaScannerConnection.MediaScannerConnectionClient {

                public void onMediaScannerConnected() {
                        
                        if(filePath != null){
                                
                                mediaScanConn.scanFile(filePath, fileType);
                        }
                        
                        if(filePaths != null){
                                
                                for(String file: filePaths){
                                        
                                        mediaScanConn.scanFile(file, fileType);
                                }
                        }
                        
                        filePath = null;
                        
                        fileType = null;
                        
                        filePaths = null;
                }

                public void onScanCompleted(String path, Uri uri) {
                        // TODO Auto-generated method stub
                        mediaScanConn.disconnect();
                }

        }
        
    /**
     *  Scan file label information  
     * @param filePath  File path eg  :/sdcard/MediaPlayer/dahai.mp3
     * @param fileType  File type eg  : audio/mp3  media/*  application/ogg
     * */
        public void scanFile(String filepath,String fileType) {

                this.filePath = filepath;
                
                this.fileType = fileType;
        // After the connection has been called the onMediaScannerConnected MusicSannerClient  () Method  
                mediaScanConn.connect();
        }
    /**
     * @param filePaths  File path  
     * @param fileType  File types  
     * */
        public void scanFile(String[] filePaths,String fileType){
                
                this.filePaths = filePaths;
                
                this.fileType = fileType;
                
                mediaScanConn.connect();
                
        }
        
        public String getFilePath() {

                return filePath;
        }

        public void setFilePath(String filePath) {

                this.filePath = filePath;
        }

        public String getFileType() {
                
                return fileType;
        }

        public void setFileType(String fileType) {
                
                this.fileType = fileType;
        }

        
}
저작자 표시

관련 TAG로 검색해보세요. : android, CODE, media, mediascan, sample, 안드로이드

¬ COMMENT [0]

여러분의 커뮤니케이션을 기다리고 있습니다.

  1. : 이름
  2. : 홈페이지

  1. : 비밀번호

[안드로이드 샘플코드] ViewSwitcher

Posted by EHXM. Posted in " 안드로이드/Tech Note "2010/06/08 22:16


public class ViewSwitcherExample extends ListActivity
				 implements OnClickListener {
    
	//sample list items
	static final String[] ITEMS = new String[]
          { "List Item 1", "List Item 2", 
            "List Item 3", "List Item 4", 
            "List Item 5", "List Item 6", 
            "List Item 7", "List Item 8", 
            "List Item 9", "List Item 10" };
	
	//the ViewSwitcher
	private ViewSwitcher switcher;
	
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
	  super.onCreate(savedInstanceState);
	  
	  //no window title
	  requestWindowFeature(Window.FEATURE_NO_TITLE);
	  
	  //create the ViewSwitcher in the current context
	  switcher = new ViewSwitcher(this);
	  
	  //footer Button: see XML1
	  Button footer = (Button)View.inflate(this, R.layout.btn_loadmore, null);
	  
	  //progress View: see XML2
	  View progress = View.inflate(this, R.layout.loading_footer, null);
	  
	  //add the views (first added will show first)
	  switcher.addView(footer);
	  switcher.addView(progress);
	  
	  //add the ViewSwitcher to the footer
	  getListView().addFooterView(switcher);
	  
	  //add items to the ListView
	  setListAdapter(new ArrayAdapter(this,
	          android.R.layout.simple_list_item_1, ITEMS));
	}

	@Override /* Load More Button Was Clicked */
	public void onClick(View arg0) {
		//first view is showing, show the second progress view
		switcher.showNext();
		//and start background work
		new getMoreItems().execute();
	}
	
	/** Background Task To Get More Items**/
	private class getMoreItems extends AsyncTask {
		@Override
		protected Object doInBackground(Void… params) {
			//code to add more items
			//...
			try {
				Thread.sleep(3000); //only to demonstrate
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			return null;
		}

		@Override /* Background Task is Done */
		protected void onPostExecute(Object result) {
			//go back to the first view
			switcher.showPrevious();
                        //update the ListView
		}
	}
}
저작자 표시

관련 TAG로 검색해보세요. : android, CODE, sample, viewswitcher, 안드로이드

¬ COMMENT [0]

여러분의 커뮤니케이션을 기다리고 있습니다.

  1. : 이름
  2. : 홈페이지

  1. : 비밀번호

[안드로이드 샘플코드] Database

Posted by EHXM. Posted in " 안드로이드/Tech Note "2010/06/08 19:29


import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBAdapter 
{
    public static final String KEY_ROWID = "_id";
    public static final String KEY_ISBN = "isbn";
    public static final String KEY_TITLE = "title";
    public static final String KEY_PUBLISHER = "publisher";    
    private static final String TAG = "DBAdapter";
    
    private static final String DATABASE_NAME = "books";
    private static final String DATABASE_TABLE = "titles";
    private static final int DATABASE_VERSION = 1;

    private static final String DATABASE_CREATE =
        "create table titles (_id integer primary key autoincrement, "
        + "isbn text not null, title text not null, " 
        + "publisher text not null);";
        
    private final Context context; 
    
    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;

    public DBAdapter(Context ctx) 
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }
        
    private static class DatabaseHelper extends SQLiteOpenHelper 
    {
        DatabaseHelper(Context context) 
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) 
        {
            db.execSQL(DATABASE_CREATE);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, 
        int newVersion) 
        {
            Log.w(TAG, "Upgrading database from version " + oldVersion 
                    + " to "
                    + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS titles");
            onCreate(db);
        }
    }    
    
    //---opens the database---
    public DBAdapter open() throws SQLException 
    {
        db = DBHelper.getWritableDatabase();
        return this;
    }

    //---closes the database---    
    public void close() 
    {
        DBHelper.close();
    }
    
    //---insert a title into the database---
    public long insertTitle(String isbn, String title, String publisher) 
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_ISBN, isbn);
        initialValues.put(KEY_TITLE, title);
        initialValues.put(KEY_PUBLISHER, publisher);
        return db.insert(DATABASE_TABLE, null, initialValues);
    }

    //---deletes a particular title---
    public boolean deleteTitle(long rowId) 
    {
        return db.delete(DATABASE_TABLE, KEY_ROWID + 
        		"=" + rowId, null) > 0;
    }

    //---retrieves all the titles---
    public Cursor getAllTitles() 
    {
        return db.query(DATABASE_TABLE, new String[] {
        		KEY_ROWID, 
        		KEY_ISBN,
        		KEY_TITLE,
                KEY_PUBLISHER}, 
                null, 
                null, 
                null, 
                null, 
                null);
    }

    //---retrieves a particular title---
    public Cursor getTitle(long rowId) throws SQLException 
    {
        Cursor mCursor =
                db.query(true, DATABASE_TABLE, new String[] {
                		KEY_ROWID,
                		KEY_ISBN, 
                		KEY_TITLE,
                		KEY_PUBLISHER
                		}, 
                		KEY_ROWID + "=" + rowId, 
                		null,
                		null, 
                		null, 
                		null, 
                		null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

    //---updates a title---
    public boolean updateTitle(long rowId, String isbn, 
    String title, String publisher) 
    {
        ContentValues args = new ContentValues();
        args.put(KEY_ISBN, isbn);
        args.put(KEY_TITLE, title);
        args.put(KEY_PUBLISHER, publisher);
        return db.update(DATABASE_TABLE, args, 
                         KEY_ROWID + "=" + rowId, null) > 0;
    }
}
출처: http://www.devx.com/wireless/Article/40842/1954
저작자 표시

관련 TAG로 검색해보세요. : android, CODE, Database, sample, 안드로이드

¬ COMMENT [0]

여러분의 커뮤니케이션을 기다리고 있습니다.

  1. : 이름
  2. : 홈페이지

  1. : 비밀번호

[안드로이드] 영어 어학기 어플

영어 듣기 공부 많이들 하시나요? 따로 어학기를 장만하시기는 비용이 들죠? 스마트폰에서 MP3 파일을 터치를 이용해서 자유롭게 듣을 수 있는 영어 어학기 어플입니다. 동아리.....

2010년 대한민국 매쉬업 경진대회 후기, 아이디어 전쟁을 다녀와서..

아이디어의 전쟁의 현장이었던 2010년 대한민국 매쉬업 경진대회에 다녀왔습니다. 이번 대회는 지난 2월 6일(토요일), 삼성동 코엑스 컨퍼런스룸 401에서 열렸습니다. 이번.....

2010년 100가지가 넘는 안드로이드폰이 몰려온다!

2010년에 100가지가 넘는 안드로이드 폰 출시가 될 예정입니다. Mobile World Congress keynote에서 Google CEO Eric Schmidt의 연설.....

[안드로이드] 모토로이 체험할 수 있는 곳 (전국)

서울, 안양, 부산, 대구, 광주, 대전에 안드로이드 폰 체험 할 수 있는 곳이 있네요. 저는 코엑스 메가박스 입구에 있는 모토로라 체험 부스에서 우연히 모토로이를 만져보게 되.....

위 3D 갤러리는 http://www.fotoviewr.com/ 사이트의 Fotoviewr 입니다. Flex와 Papervision3D를 이용하여 위와같은 3D 갤러리를 구현해.....

언톡 2010년 신입생 모집 포스터
Android, LEGO NXT를 이용한 Sudoku Solving Robot 제작
Android, LEGO NXT를 이용한 Sudoku Solving Robot 제작
Android, LEGO NXT를 이용한 Sudoku Solving Robot 제작
Android, LEGO NXT를 이용한 Sudoku Solving Robot 제작
Android, LEGO NXT를 이용한 Sudoku Solving Robot 제작
뻗어버린 트위터
애니콜 드리머즈 7기 2차 합격!
김경호를 소개합니다! - 애니콜 드리머즈 Explorer 7기 지원
1 2 3 4 5 ... 7

Category

전체보기 (105)
Anycall Dreamers (3)
안드로이드 (35)
Adobe Flash Platform (20)
Algorithm (0)
개발노트 (6)
경험 (33)

글 보관함

2010/08 (1)

2010/07 (2)

2010/06 (4)

2010/05 (1)

2010/04 (4)

Calendar

«   2010/09   »
      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    

믹시


Total : 61,654 Today : 137 Yesterday : 180