본문 바로가기

개발자

안드로이드 악기 앱 개발을 위한 AudioTrack 사용하기 개발중인 악기 앱 개발을 위해 소리를 각종 소리를 만들고, 합성하고, 분석하는 방법을 포스팅. 아래 코드는 합성된 소리를 재생한다. 먼저 Layout 파일을 보면 스타트, 스톱을 실행하는 버튼 2개를 배치한다. 코드를 살펴보면 onCreate 에서 버튼 등록하고 리스너를 등록해준다. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_audio_main); startSound = (Button) this.findViewById(R.id.StartSound); startSound.setOnClickListener(this);..
안드로이드 일정한 톤으로 사운드 생성 하고 플레이 - 오늘 블로그에 Syntax Highlighter를 적용 기념으로 코드를 포함한 포스팅 ~ 요즘 음악, 악기 관련 앱 검토중이라서 안드로이드에서 어떻게 소리를 만들고 재생하는지 보고있다. 아래는 주파수에 따른 (여기서는 1500Hz)에 맞는 사인파형을 만들어 내고, 만들어진 데이터를 16Bit PCM 데이터 형식으로 변환하여 플레이 한다. 주파수를 바꾸면 소리의 톤이 틀려진다. 여기서는 onResume 에 구현했지만 그냥 onCreate 에 구현해도 된다. xml 파일을 사용하지 않는다. 소리만 확인하는 정도이니 어떻게 만들어도 상관 없다. setContentView(R.layout.activity_sound_main); 여기 xml 파일만 맞추어 준다. 여기가 구현코드~ package com.soried..
XML(Extensible Markup Language) 에 대한 10가지 관점 XML : Extensible Markup Language에 대한 10가지 관점 XML, XLink, Namespace, DTD, Schema, CSS, XHTML 등 ... 만약 XML을 새로이 접하게 된다면, 이와같은 용어는 매우 어렵게 느껴질것이다. 이 요약은 XML의 초보자들에게 기본적인 개념에 대하여 10 가지를 제공 함으로써 나무를 통하여 숲을 볼 수 있도록 하기 위한것이다. 1. XML은 구조적인 데이타를 위한것이다 스프레드 시트, 주소록, 형상 파라미터, 비지니스 트랜잭션, 그리고 기술 도면 등 구조를 가지는 데이타는 사물을 포함한다. XML은 텍스트 포맷을 설계하기 위한 규칙(가이드 라인이나 관례라고 생각할 수 있다)들의 집합이며, 이러한 규칙을 통하여 데이타를 체계화한다. XML은 프로..
안드로이드 AudioRecoder 쓸때 에러메시지 - 퍼미션 줘야 됨. AudioRecord 사용하실때 보통 초기화를 아래처럼 시키고 int bufferSize = AudioRecord.getMinBufferSize(frequency,channelConfiguration, audioEncoding); AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency,channelConfiguration, audioEncoding, bufferSize); 이후 진행을 하는데 아래와 같은 메시지가 나올경우 01-30 15:11:46.699: E/AudioRecord(4366): AudioFlinger could not create record track, status: -101-30 15:11:4..
한 프로젝트 다른 패키지의 액티비티 실행할때 매니패스트에 경로입력 하나의 프로젝트에 여러 패키지가 설정되어 있을경우다른 패키지의 액티비티를 살행하면 에러나면서 폰이 중단되는 현상이 발생~ 매니패스트에 액티비티 기술하는 부분에서 패키지 경로까지 입력했더니 잘 됨. 패키지 명이 com.soriedu.customrecorder에서 실행되는 액티비티를 다른 패키지 파일에서 불러올땐 매니패스트 파일에 반드시 아래처럼 경로까지 기술해야 함~
애자일 선언 - 애자일 소프트웨어 개발 원칙들 애자일 선언은 애자일 소프트웨어 개발의 토대를 강화하는 원칙을 발표한 것이다. 초안은 2001년 2월 11일에서 13일까지 유타의 워새치산맥에 있는 스노우버드 스키 리조트 라운지에서 만들어졌다. 여기에서 기존의 무거운 방법론보다 가벼운 대체방법론들의 필요성에 대해 토의하고자 Extreme Programming, Scrum, DSDM, AdaptiveSoftware Development, Crystal, Feature Driven Development, Pragmaticprogramming 같은 다양한 새 방법론의 대표자들이 만났다. 정보출처 : http://gyumee.egloos.com/1021784 Manifesto for Agile Software Development애자일 소프트웨어 개발에 대한 ..
언제 리팩토링 (Refactoring)을 해야 하는가 ? 켄트 백이 제안한 냄새론에 따라 아래와 같은 느낌의 냄새가 나면 리팩토링을 수행한다. 중복된 코드 - Duplicated Code긴 메소드 - Long Method커다란 클래스 - Large Class긴 인수의 리스트 - Long Parameter List스위치 명령문 - Switch Statements병렬적인 상속구조 - Parallel Inheritance Hierarchies추측에 근거한 일반화 - Speculative Generality임시필드 - Temporary Field설명문 - Comments 코드 자체가 할 말을 하게 하면 된다.
안드로이드 스트링 비교시 주의 할 점~ 알파벳 첫글자 비교등과 같은... String 내용을 비교할땐 반드시 equals 사용 1. 주소값 비교 String s1 = new String(“Hello”)String s2 = new Sttring(“Hello”) if(s1==s2) 정답 : ==을 이용한 비교는 내용비교가 아닌 주소를 비교하므로 False이다 2.내용비교 String s1 = new String(“Hello”) String s2 = new String(“Hello”) if(s1.equals(s2)) 정답 : True “equals()”를 이용한 비교는 내용을 비교하므로 True 단 equals()를 이용한 내용비교는 Wrapper클래스와 String클래스만 해당된다 3.주소값 비교2 StringBuffer s1 = new String(“Hello”) StringB..