반응형

※ 우리 부부가 열심히 일하고 야근해서 받은 머니로 구입한 후기입니다

 

 

붱이 Story

우선 지난 구입기

[사용기/전자기기] - PS4를 위한 아반트리 새턴프로 Bluetooth 동글 블루투스 동글 트랜스미터 구입기

[사용기/전자기기] - PS4 3.5mm 스테레오 소형 마이크 구입기

 

드디어 골드헤드셋 구입없이

있던 블루투스를 이용하여 PS4를 할수있게 되었다

 


 

 

블루투스 트랜스미터 동글과 톤플러스 연결

 

먼저 ps4 pro가 연결되어 있는

c34f791 뒤편에 aux와 usb에 연결되어있는

새턴프로의 전원을 켰다.

(이미 페어링되어 있던 상태)

아래 gif처럼 파란불이 깜빡인다.

그리고 톤플러스 전원을 키니 바로

 "연결되었습니다"

그리고 ps4 main 배경음이 나온다 ~ 올레~~


 

 

듀얼쇼크에 스테레오 마이크 연결

 

어랏 근데 마이크를 연결하니

톤플러스에서 소리가 안나온다.

 

 

 

오디오 출력 옵션 변경

마이크가 달린 이어폰 꼽을때처럼

저 소형 마이크도 헤드셋으로 인식해서 생긴 결과다

옵션을 변경해주자

 

기본값은 입력기기 처럼

"컨트롤러에 연결한 헤드셋"

이값을 TV 또는 AV 앰프로 변경

올레~!!! 이제 소리도 나온다

마이크도 잘동작한다.

 

총평


이 동글을 구입한 큰이유는 세가지였다.

1. 어떤 음향기기던 aux만 있으면 input output 모두 가능하다는 점

2. apt-X LL 지원

3. 딜레이가 적다

 

우선 배틀필드1으로 테스트해보았다.

내가 둔한건지 실제로 딜레이가 없는지 모르겠지만

이상하다는 느낌은 못받았다.

총소리 사람소리 모두 제대로 들리는듯 하다

번들로만 듣다가 톤플러스로 들으니 음향도 아주 좋다.

기존에 선땜에 겜할대 주렁주렁 걸리적 거렸는데

마이크도 작고 디잔도 만족 한다.

 

※ 공감 및 댓글 한마디는 포스팅하는데 큰 힘이 됩니다.

반응형
반응형

※ 우리 부부가 열심히 일하고 야근해서 받은 머니로 구입한 후기입니다

 

 

붱이 Story 지난 Bluetooth 동글 구입기에 이은 마이크 구입기~

[사용기/전자기기] - PS4를 위한 아반트리 새턴프로 Bluetooth 동글 블루투스 동글 트랜스미터 구입기

 

 


 

 

스테레오 마이크 도착


헤드셋은 위 동글로 해결했고 동글 살때

 같이 구입한 마이크가 드디어 오늘 도착했다

주문 5월 23일

 도착 6월 2일

딱 10일 걸려서 왔다

 

듀얼쇼크에 마이크 꼽은 모습

마이크를 꼽은 모습 크지 않고 적당해서 상당히 만족스럽다.

 

과연 동작할까?

 

마이크를 꼽으니 바로 알림이 뜬다!!

 

마이크를 뽑아보았다.

아래와같이 잘 인식한다.

 

 

마이크 출력 테스트

 

오디오 기기에서 마이크 레벨 조정하기에서 소리를 내면

아래와같이 입력 음량이 움직이는것을 확인할수 있다.

 

구입기 끝

 

다음 포스팅은 블루투스 톤플러스와 마이크 동시 사용기~

[붱이 Story/게임] - PS4 Pro - 톤플러스와 마이크 사용기(새턴 프로 동글 사용)

 

※ 공감 및 댓글 한마디는 포스팅하는데 큰 힘이 됩니다.

 

반응형
반응형

 

붱이 Story

안드로이드에서 json 파싱 노가다를

아주 간단히 한 두줄로 끝낼수 있는 강력한 방법

GSON

Gson?

Gson에 대해 알아보자

상세 설명은 링크로 대체 ㅎㅎ

너무 설명을 잘하셔서...

http://emflant.tistory.com/47

 

내가 처음 GSON 을 알고

사용법을 익히기위해

찾아본 blog에는

솔직히 너무 기본적인 내용밖에 없었다

이런느낌?

 

<PPT를 만들기법>

ppt를 띄운다

제목란에 제목을 쓴다

내용에 내용을 쓴다.

 

실전에 활용하기엔 역부족

 

요근래 GSON에 대해서 문의가 많이 들어와서

설명해주기 힘들었었다.

정리해두면 다른 사람들이 또 질문했을때 유용할듯

 

예제설명을 위한 가상 app을 예제로 설명을 해보려한다.

(추후 만들예정)
 

은쟈 요구사항(실제 몇달전 요청했었다)


"화장품 사면 유효기간이 언제까지인지 까먹다가 못쓰는 화장품이 많은데

앱에 유효기간을 저장해두고 시간이되면 알려주는 앱 만들어주면 안되?"

 

생각해보니 나도 쿠폰 같은거 받아두고

그전에 써야지 생각하고 보면 이미 유효기간 아웃..

해서 화장품뿐만 아니라 쿠폰, 가전제품 등의

유효기간 이나 A/S 기간이 있는 것들에 대해서 확장하여 구상을 했다.
   

앱에서 보여줄 필요한 정보들

예시

> Category
  전자제품
  가구
  화장품
  음식
  약제
  쿠폰
  + 사용자 얼마든지

> Item
  분류 : Category중에 하나꼭 선택
  제품명 : 다이슨 선풍기 AM-07
  생성일 : 만든날 또는 구입일
  만료일 : 유효기간 or A/S기간
  제품 img : list형태
  영수증img : list형태
  대표 img : 제품 img중에 하나 선택하게
  알람 : 만료기간 몇일전 알람

 

Json Sample에 대응되는 class

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
32
33
34
35
36
37
38
39
40
41
42
43
44
    // 여기서 final은 상속불가를 위해 선언
    public final class ExpireData {
        // @SerializedName의 값은 json에서 Object로 파싱 되어질 때 key의 name이다.
        // 변수명은 달라도 된다. 이왕이면 같게
        // Catetory 리스트 Type이 Category로 되어있다
        public @SerializedName("categories") ArrayList<Category> categories; 
        // Item 리스트 Type이 Item으로 되어있다
        public @SerializedName("items") ArrayList<Item> items;
 
        // inner class는static으로 
        // 위 categories에 들어갈 Category Class
        public static final class Category {
            public @SerializedName("name"String name;
            public @SerializedName("icon"String icon;
 
            public Category(String name, String icon) {
                this.name = name;
                this.icon = icon;
            }
        }
 
        // 위 items에 들어갈 Item Class
        public static final class Item {
            public @SerializedName("name"String name;
            public @SerializedName("category"String category;
            public @SerializedName("createDate"String createDate;
            public @SerializedName("expireDate"String expireDate;
            // 제품 이미지는 여러장이 될수 있기 때문에 ArrayList
            public @SerializedName("productImgs") ArrayList<String> productImgs; 
            public @SerializedName("receiptImg"String receiptImg;
            public @SerializedName("alarm"String alarm;
 
            public Item(String name, String category, String createDate, String expireDate,
                    ArrayList<String> productImgs, String receiptImg, String alarm) {
                this.name = name;
               this.category = category;
                this.createDate = createDate;
                this.expireDate = expireDate;
                this.productImgs = productImgs;
                this.receiptImg = receiptImg;
                this.alarm = alarm;
           }
        }
   }
cs

 

test용도이니 getter setter 및 생성자는

개발자 입맛에 맞게 변경~~

 

Json Sample

 

json 이쁘게 node로 볼수 있는 사이트
http://jsonviewer.stack.hu/

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
  "categories": [
    {
      "name""Electronic",
      "icon""electronicIcon.png"
    },
    {
      "name""Cosmetic",
      "icon""cosmeticIcon.png"
    },
    {
      "name""Food",
      "icon""foodIcon.png"
    }
  ],
  "items": [
    {
      "name""TV",
      "category""Electronic",
      "createDate""2017-06-01",
      "expireDate""2018-06-01",
      "productImgs": [
        "productimg01.png",
        "productimg02.png"
      ],
      "receiptImg""receipt.png",
      "alarm""2018-05-15 09:00"
    },
    {
      "name""Founder",
      "category""Cosmetic",
      "createDate""2017-06-01",
      "expireDate""2018-06-01",
      "productImgs": [
        "productimg01.png"
      ],
      "receiptImg""receipt.png",
      "alarm""2018-05-15 AM 9:00"
    },
    {
      "name""Water melon",
      "category""Food",
      "createDate""2017-06-01",
      "expireDate""2018-06-01",
      "productImgs": [
        "productimg01.png",
        "productimg02.png",
        "productimg03.png"
      ],
      "receiptImg""receipt.png",
      "alarm""2018-05-15AM9: 00"
    }
  ]
}
cs

 

 

 

ExpireData 생성

 

 

1
2
3
4
5
6
7
//사용자가 입력한 값들을expireData에 담는다
ExpireData expireData = new ExpireData();
expireData.categories.add(new ExpireData.Category("Electronic""electronicIcon.png"));
ArrayList<String> productsImgs = new ArrayList<>();
productsImgs.add("productimg01.png");
productsImgs.add("productimg02.png");
expireData.items.add(new ExpireData.Item("TV""Electronic""2017-06-01""2018-06-01", productsImgs
cs


 

Gson을 이용한 ExpireData to json

 

 
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
Gson gson = new Gson();
String json = gson.toJson(expireData);
 
//결과 
{
  "categories": [
    {
      "icon""electronicIcon.png",
      "name""Electronic"
    }
  ],
  "items": [
    {
      "alarm""2018-05-15 09:00",
     "category""Electronic",
      "createDate""2017-06-01",
      "expireDate""2018-06-01",
      "name""TV",
     "productImgs": [
        "productimg01.png",
        "productimg02.png"
      ],
     "receiptImg""receipt.png"
    }
  ]
}
cs

 

이경우는 사용자가 입력한 data를

json파일로 저장할때 쓰인다.

저장한 json은 app이 로딩될때

아래와 같은 방법으로 파싱되어

app에서 보여질수 있다~

 

 

Gson을이용한 json to ExpireData

 

1
2
3
// 단 두줄로... json을 parsing 하여 Object에 바로 담아준다
Gson gson = new Gson();
ExpireData getExpireData = gson.fromJson(json, ExpireData.class);
cs

 

app에서 기존 저장된 json data를

불러올때 쓰거나

 server에서 받아온 json을

정해진 class타입에 맞게 파싱할때 쓰인다.

위에 설명해준 @SerializedName 의 값에 의해

 파싱이 되니 꼭 이름이 같아야한다!!

 

문의사항은 댓글남겨주세요

 

※ 공감 및 댓글 한마디는 포스팅하는데 큰 힘이 됩니다.

반응형

+ Recent posts