Apple, 온라인 동영상 압축를 위해 동맹에 합류

아이폰 제조업체는 데이터 계획을 쉽게 수행 할 수 있도록 고안된 압축 기술을 보증하는 최첨단 기술 업체 중 마지막 기업으로 합류하게 되었습니다.


아이폰 - 엑스 - 출시 - 시드 -4

애플은 오픈 미디어 얼라이언스에 조용히 가입했다. 

클레어 라일리 / CNET

몇 달 동안 구글, 아마존, 마이크로 소프트, 페이스 북을 포함한 강력한 회사들은 온라인 비디오 크기를 줄이기 위해 노력해 왔습니다 그러나 애플이 이제 파트너쉽에 가입했기 때문에 그들의 작품은 더욱 중요 해졌다.

오픈 미디어 얼라이언스 (Alliance for Open Media)는 비디오가 저장되거나 네트워크를 통해 전송되기 전에 비디오를 압축하는 AV1이라는 기술을 개발하고 있습니다. 이 기술은 저장 공간이 부족하거나 데이터 계획이 지난 월간 제한을 초과하지 않도록하는 데 중요합니다. 그러나 압축 기술은 널리 지원되는 경우에만 유용하며, Apple은 큰 보탬이되었습니다.

수요일의 변경으로 업데이트 된 그룹 웹 사이트에 따르면, 애플은 조용히 창립 회원사로 동맹에 합류했다. AV1에 대한 애플의 계획은 아직 명확하지 않다. 회사는 논평 요청에 응답하지 않았지만, 창립 멤버로 가입하면 강력한 지원 신호를 보낸다.

구글 크롬 팀의 미디어 전략 및 파트너십 책임자 인 매트 프로스트 (Matt Frost)는 "시간의 변화와 지속성에 대한 보상은 매우 중요한 의미를 지니고있다.

서리가 알아야합니다. 그는 한때 Google 이 2010 년에 1 억 2 천 3 백만 달러에 인수한 비디오 압축 회사 인 On2 Technologies의 CEO였습니다 그 목적은 변호사와 값 비싼 로열티 지불이 요구되는 오늘날의 특허 라이센스 부담에 매료되지 않은 비디오 기술을 출시하는 것입니다. 노력의 첫 번째 성과 인 VP8은 모질라의 지원을 받아 겸손한 성공을 거두었지만 Microsoft는 결국 후계자 VP9에 가입했습니다 .

AV1은 다른 짐승이다. 모질라와 시스코는 자체 비디오 압축 기술을 제공했으며 아마존, 넷플릭스, 훌루 등 주요 스트리밍 비디오 회사의 지원을 받았다. 애플의 지원은 AV1의 잠재 고객을 한층 더 강하게 만들 것입니다. 특히 지금까지는 홀드 아웃이었습니다.

가장 큰 VP8 및 VP9 챌린저는 H.264 또는 AVC라고하는 주요 표준이었습니다. 2017 년 애플은 HEVC 또는 H.265 라는 후임자를 옹호했다 . 그러나 HEVC는 기술에 공헌 한 회사들이 유리한 로열티 가격으로 경쟁하기 때문에 특허 문제에 빠져 들었다. 운영 체제, 비디오 소프트웨어, 카메라, 프로세서, 전화기, Blu-ray 플레이어 또는 TV 네트워크와 같은 제품에서 HEVC를 사용하고자하는 사람은 별도의 HEVC 특허 라이센싱 그룹으로 계산해야합니다 .

AV1은 아직 진행 중이지만 첫 번째 버전은 몇 주 안에 완성 될 예정입니다. 초기 버전을 지원하는 모질라는 11 월에 AV1이 HEVC 및 VP9에 비해 파일 크기를 25 ~ 35 % 줄 였다고 전했다  더 나은 압축은 문제를 야기 할 수 있습니다. 비디오를 압축하는 시간이 길어지고 메모리 및 배터리 수명과 같은 희소 한 컴퓨팅 리소스에 더 많은 부담이 따르게됩니다. 

Alliance for Open Media는 입양을 더 쉽고 저렴하게 할 로열티없는 표준을 약속하지만 모든 사람이 확신하지는 못합니다. 

프로스트 앤 설리반 (Frost & Sullivan) 애널리스트 댄 레이번 (Dan Rayburn) 은 "비디오 압축 및 재생 기술에 관련된 특허를 보유한 회사가 많이있다 "AV1은 여전히 ​​초기 단계에 있지만 일부 기술 업체들이 특허를 시행하지 않을 것이라는 보장은 없다"고 말했다.

처음 1 월 4 일 10:07 PT에 게시 됨. 
업데이트 : 11:38 am PT : AV1에 대한 자세한 내용과 분석가 Dan Rayburn의 의견을 추가합니다.


https://www.cnet.com/news/apple-online-video-compression-av1/


Rockchip RK3399Pro SoC, 인공 지능 응용 분야에 2.4 TOPS 신경망 처리 장치 통합


Rockchip RK3399 (일명 OP1) SoC는 육각형 코어 Arm Cortex A72 / A53 프로세서, Mali-T860MP4 GPU, 4K 비디오 디코딩 지원, USB 3.0 및 PCIe와 같은 고속 인터페이스 및 기가비트 이더넷을 통해 2016 년에 출시되었습니다. 이 프로세서는 Chromebook , TV 박스 , 개발 보드 및 기타 장치에 있습니다.

이 회사  CES 2018에서 프로세서의 업그레이드 된 "프로"버전을 발표 했습니다. Rockchip RK3399Pro는 이전 모델과 거의 동일한 기능을 갖추고있는 것으로 보이지만 인공 지능 및 심층 기능을 위해 최대 2.4 TOPS를 제공하는 신경망 처리 장치 (NPU) 학습 애플리케이션.

RK3399Pro의 전형적인 Deep Neural Network Inception V3, ResNet34 및 VGG16 모델의 컴퓨팅 성능은 기존 솔루션에 비해 GPU 가속을 사용하여 구현 된 AI 솔루션보다 거의 1 백 배나 향상된 것으로 나타났습니다.

위 차트 (출처 : elDEE, twitter에서 출처 : elDEE) 를 기반으로 한 Rockchip RK3399Pro는 Apple A11 및 Huawei Kirin 970을 비롯한 다른 고급 SoC보다 성능이 뛰어나며 둘 다 NPU 기능을 제공하며 심지어 오퍼도 제공합니다 NVIDIA TX2 보다 우수한 성능 .

RK3399Pro NPU는 8 비트 및 16 비트 연산을 지원하며 OpenVX 및 TensorFlow Lite / AndroidNN API를 비롯한 다양한 AI 소프트웨어 프레임 워크 및 API와 호환되며 Caffe / TensorFlow 모델을 처리 할 수있는 인공 지능 소프트웨어 도구와 함께 제공됩니다. 개발 속도를 높이기 위해 RK3399Pro 하드웨어 레퍼런스 디자인을 제공 할 수도 있지만 세부 사항은 제공되지 않았다.

업데이트 : 위의 표에서 RK3399Pro 번호를 확인하는 중국어로 된 몇 가지 세부 정보입니다. 출처 : China.com

확대하려면 클릭하십시오.

]

Liliputing 경유


https://www.cnx-software.com/2018/01/08/rockchip-rk3399pro-soc-integrates-a-2-4-tops-neural-network-processing-unit-for-artificial-intelligence-applications/



U5PVR Torrent 앱 설정방법 (1) - tTorrent

 

안녕하십니까 ?  EddyLab입니다.


안드로이드 셋탑을 쓰시면서 컨텐츠 입수관련을 다른 PC에서 받아서 시청하시는 경우가 있습니다.  이 경우 PC를 계속 켜 놓아야 한다는 부담감이 있습니다.

PC의 경우는 소비전력이 높기 때문에, 가정에서 전기 소비량도 증가하게 됩니다.

PC보다는 다운로드 속도가 느리지만,
항시 On 상태에서 소비전력이 낮은 안드로이드셋탑은 상대적으로 유리합니다.


U5PVR은 기본적으로 방송녹화 기능을 사용하시면서
토랜트 서버 기능으로 사용하시면 더욱 효과적일 수 있습니다.


하기 내용은 컨텐츠 라이프 사이클 프로세스 입니다.
U5PVR은 하기와 같은 기능을 모두 수행할 수 있도록 만들어져 있습니다.


영화나 TV재생 및 녹화 기능은 1/3정도의 기능이고,
그밖의 미디어NAS기능을 구현할 수 있도록 만들어져 있습니다.

시놀로지 NAS (DS218Play급) + 4K Blu-ray Navigation 미디어플레이어 라고 이해하시면 될 것 같습니다. 



U5PVR에서는 2가지 방법으로 torrent 서버 기능을 사용 하실 수 있습니다.

A. U5PVR 리눅스기반의 트랜스미션 서버

1) U5PVR 리눅스 첫단추 : 토렌트(torrent)서버 설정 및 사용방법 (1)
http://cafe.naver.com/mk802/23361

2) U5PVR 사용자 초심레벨 서포터 지원 (1) 17년7월 3주차 - 기초 리눅스 접근방법(SSH)과 Torrent & FTP
http://cafe.naver.com/mk802/22070

B. U5PVR 토렌트 안드로이드 앱 서버 



이전에 U5PVR 리눅스기반의 트랜스미션 설정 관련 내용을 올려드렸습니다만,
리눅스 접근에 어려움을 겪으신 분들께서는 아직 사용에 어려움이 있으신 것 같습니다.   

그래서, 오늘은  이전에 한번 소개드린 tTorrent 앱 활용을 중심으로 설명을 드리고자 합니다.


(1) tTorrent 앱 설정 및 활용

(2) Transdroid 앱 설정 및 활용

2가지 내용으로 설명을 드리게 됩니다.

여기서 "
Transdroid 앱"은 스마트폰을 이용하여,
손쉽게 토렌트 시드를 올릴 수 있는 방법이므로, 꼭 활용하시기 바랍니다.


토렌트는 CPU의 속도와 네트워크 속도, 그리고 다운로도 저장소 읽기 쓰기 속도가 빠르면 빠를 수록 다운로드 속도는 증가하게 됩니다.

U5PVR의 CPU는 인텔 컴퓨터 CPU에 비해서 그리 빠르지 않습니다.
네트워크 속도는 해외망을 많이 이용하는 컨텐츠인지, 국내망을 많이 이용하는지에 따라서 달라지겠고, 다운로드 저장소의 읽기 쓰기가 빠른 SSD를 쓰면 빠르게 됩니다.  

그러므로, U5PVR에서 고속 토렌트 다운로드를 기대하시기는 어렵습니다. ^^
U5PVR는 저 소비전력기기이므로, 장시간 다운로드를 받으셔도 부담없이 활용 하실 수 있습니다.


빠른 다운로드를 위해서는 U5PVR에서 LAN연결은 필수입니다. ^^
가급적 무선은 꺼 주시고 사용하시기 바랍니다. 

대략 다운로드 속도는 8~10M정도로 예상하시면 되겠습니다.



간단설명 

1. tTorrent 
앱(no ads)을 설치 해 봅니다.


tTorrent (no ads)-1.5.12.apk


2. 설정 >> 디렉토리 >> "토렌트 파일이 다운로드 되는 디렉토리" 설정


3. 외장 USB메모리를 다운로드 경로로 설정 "mnt/media_rw/sda1/torrent"

** NAS의 경우, "mnt/smb/mountpoint_01/torrent"


4. 설정 >> 웹 인터페이스 >> 웹 인터페이스 ==> ON

포트 주소 "http://192.168.x.x:1080 (메모필수)


5. 설정 >> 웹 인터페이스 >> Transdroid 지원 >> 

- SSL 사용 ==> ON

인증 ==> ON

사용자명(ID) 입력

비밀번호 입력


6. 설정 >> 전원관리 ==> 필요로 되는 설정을 선택 하여 활성화 



==================


이제 안드로이드 앱을 U5PVR 앱을 설치합니다.



소개드리는 앱은 tTorrent앱입니다.
하기 앱은 tTorrent Lite앱입니다.  




tTorrent Lite




그러나 앱에 광고가 있기 때문에, 광고가 보이지 않는 앱을 설치 해 봅니다.


tTorrent (no ads)-1.5.12.apk



이 앱은 리모콘으로 콘트롤이 불가능 하므로,

유무선 마우스 키보드를 반드시 활용하셔야 합니다.



앱을 설치를 하면, 하기와 같이 심플한 UI를 보실 수 있습니다.




왼쪽의 햄버거바(세줄 아이콘)을 누르면, 여러가지 메뉴를 보실 수 있습니다. 

먼저 설정을 선택합니다.



설정 >> 디렉토리 



설정 >> 디렉토리 >> "토렌트 파일이 다운로드 되는 디렉토리" 설정을 변경합니다.




"토렌트 파일이 다운로드 되는 디렉토리" 화면에서 경로 목록을 선택합니다.



"토렌트 파일이 다운로드 되는 디렉토리"에서 여러가지 경로가 보여질 수도 있고,

아닌 경우도 있을 수 있습니다.


제 경우에는 슬림에 외장 USB메모리를 꼽아 놓고 사용하고 있고,

이 USB메모리는 sda1으로 설정 되어져 있습니다.


외장 USB메모리를 다운로드 경로로 설정하겠습니다.

"mnt/media_rw/sda1"을 선택합니다.



"mnt/media_rw/sda1" 안에 있는 폴더 목록이 보여집니다.



"mnt/media_rw/sda1"에서 torrent폴더를 다운로드 폴더로 "선택"하였습니다.







"토렌트 파일이 다운로드 되는 디렉토리" 아래의 경로를 최종 확인합니다.


하기 경로는 U5PVR에 연결되어 있는 HDD 경로입니다.

"mnt/media_rw/sda1/torrent"

만일 네트워크에 있는 NAS에 연결하면

"mnt/smb/mountpoint_01/torrent" 과 같은 형식의 경로로 만들어집니다.



설정 >> 웹 인터페이스



설정 >> 웹 인터페이스 >> 웹 인터페이스 ==> ON

이 기능은 댁내 PC의 웹브라우저에서 tTorrent를 원격콘트롤 하기 위한 기능입니다. 



PC의 웹브라우저에서 tTorrent를 원격콘트롤를 하기 위해서는

포트 주소 "http://192.168.x.x:1080 으로 접속하시면 됩니다.


설정 >> 웹 인터페이스 >> Transdroid 지원




설정 >> 웹 인터페이스 >> Transdroid 지원 >> SSL 사용 ==> ON




설정 >> 웹 인터페이스 >> Transdroid 지원 >> 인증 ==> ON



설정 >> 웹 인터페이스 >> Transdroid 지원 >> 사용자명(ID) 입력





설정 >> 웹 인터페이스 >> Transdroid 지원 >> 비밀번호 입력






설정 >> 전원관리



설정 >> 전원관리

필요로 되는 설정을 선택 하여 활성화 하시기 바랍니다.






토렌트 다운로드를 위해서 U5PVR의 크롬웹브라우저에서

토렌트 시드를 다운로드 받습니다. 



하기의 마그넷은 지원이 되지 않고 있네요




이제 U5PVR에 다운로드 받은 토랜트 시드를 이용하여 다운로드를 실행하여 보겠습니다.
왼쪽의 햄버거바(세줄 아이콘) >> 파일탐색기를 이용하여,

다운로드 받은 경로로 들어갑니다.




다운로드 받은 토랜트 시드를 마우스로 선택을 하여 누르면,



하기와 같이 토렌트 추가 메뉴가 나타납니다.

체크 하실 내용은 "저장 위치:"가 맞는지 확인을 하시기 바랍니다. 

하단의 "다운로드"를 선택하시면 실행됩니다.










다른 방법으로 X-plore 앱을 이용하는 방법입니다.




다운로드 받은 토렌트 시드가 있는 폴더를 엽니다.



원하시는 토렌트 시드를 누르면 실행이 됩니다.



토렌트 시드의 연결 앱을 선택하게 되는데,

tTorrent앱을 선택합니다.



토렌트 추가 메뉴는 동일하게 보여집니다.






위의 방법으로 마우스로 콘트롤 하시려면, 여러가지로 불편한 점이 많습니다.


그래서, 스마트폰앱으로 콘트롤 하는 방법을 활용하게 됩니다.


(2) Transdroid 앱 설정 및 활용



스마트폰 앱 Transdroid를 이용하시게 되면,

원하시는 토렌트 사이트에서 마그넷으로 다운로드를 실시하면,

U5PVR에서 자동으로 다운로드가 실시되게 됩니다.


물론 스마트폰과 U5PVR의 서버설정관련 내용이 꼭 필요로 되게 됩니다.


그러나, 한번 해 보시면 더 이상 편리한 방법은 없다고 생각하시게 될 것입니다. ^^





향후에는 

- 다운로드 받은 영상파일명 자동변환, 

- 자막 SRT 자동 변환, 

- 지정폴더로 자동 이동, 

- TV 썸네일, 영화 포스터 자동 생성 

- 영상 줄거리 자동 업데이트 

- 라이브러리 자동 업데이트


등의 자동화 방법론도 있습니다.


관련으로 많은 개발자 분들이 개발 중에 있습니다만, 

아직 체계적으로 정리되어 있지는 않고, 

관련 많은 프로그램들의 복잡한 설정등이 필요로 됩니다.


그러나, 개발자 분들의 노력으로 점차 사용하기 쉬운 방법론등이 나오고 있으므로,

이후에 천천히 소개를 해 드리도록 하겠습니다.


감사합니다.




EddyLab Naver 쇼핑몰 : 

http://smartstore.naver.com/eddylab







자세한 사항은 "EddyLab - UHD 미니PC포럼"에서 자료를 참조 하시기 바랍니다.

http://www.eddylab.co.kr  /  http://cafe.naver.com/mk802






수도관련 악세서리 (3) - 샤워기 온수 온도 센서

 

안녕하십니까 ?  EddyLab입니다.


어제 도착한 샤워기 온수 온도 센서를 설치 해 보았습니다.

 


이 제품개념은 간단합니다.

물의 적당한 온도를 맞춰서 온수 수도꼭지를 돌려서 이용하지는 것입니다.


샤워를 할때나 욕탕에 물을 받을때 적정온도를 수치화시켜서

물의 양을 조절해서 사용할 수 있는 인텔리전트한 제품이죠 ^^




준비물은 몽키스패너 하나면 됩니다. ^^


설치 요점은 물이 세워나오지 않도록 잘 조여주는 것이 포인트입니다.



동영상으로 보시면, 
초기 찬물 온도는 약 15도 정도이고, 
온수 최고온도는 약 50도까지 올라가더군요...







저도 온도 디스플레이 관련으로 동전 배터리가 있는가 ? 

싶어서 확인을 해 보고 있었습니다만,


요정머리님이 이야기 주신 것 처럼, 

수압으로 자동 디스플레이가 되는 것이 더군요 ㅎㅎㅎㅎ


수압으로 디스플레이가 된다니, 저도 신기하더군요..



그래서 한번 설치하면 영구적으로 사용가능 한 것 같습니다. ^^



아직 내무부 장관께서 사용 후기 코멘트는 없는데,

좀 더 써 보면서 이야기 드려야 겠네요 ㅎㅎㅎ





수도관련 악세서리 (2) - 샤워기 온도 센서

 

안녕하십니까 ?  EddyLab입니다.

작년 한해에 여러가지 중국 제품을 구입을 해 보고, 집에 적용하여 사용하고 있습니다만,

집에서 내무부장관께서는 항시 탐탁치 않게 생각합니다. ㅎㅎㅎㅎ


어느 집이나 마찬가지 이겠습니다만, 미디어 재생기는 남자(?)들의 전유물이고,

내무부장관의 눈높이에 맞도록 여러가지로 설정을 많이 해야 합니다.


그러나, 의외로 무심코 구입한 중국 제품중에 

내무부 장관의 무한 칭찬(?)을 받은 제품 몇가지가 있습니다.. ^^



전에도 이야기를 드린 내용입니다만,


1등이 초고압 샤워기 수전입니다. ^^


2등은 현재 2달동안 test하고 있는 차이슨 무선 청소기 입니다.

(계속 몇개월 test를 해 보면서 리뷰글을 올리려고 준비하고 있습니다 ^^)




댁에서 샤워기 수전를 교체하는 것은 잘 고려하지 않는 것이 보통입니다.

샤워기 수전의 고무패킹이 망가지면 잠시 생각을 해 보게 됩니다만, 그냥 있는 그대로 쓰게 됩니다.



그러나, 수압에 대한 영향에 따라서 샤워기 물이 시원하게 나오지 않는 경우도 있고,

화장실 청소가 보통은 남자들의 몫입니다만, 

물청소시에 샤워기로 청소를 하려면 물의 수압을 높이려고 

최대한 물 세기를 키우려기 때문에 물의 소비량이 많습니다...



이 초고압 수전은 가격도 그리 비싼 제품도 아닙니다.


일단 수압 세기가 세기 때문에 제가 몇개 구입해서 스터디 그룹 회원님들과

친인척 집에도 선물로 돌렸습니다만, 만족도는 최고 입니다. ㅎㅎㅎㅎㅎ



일단 칭찬을 받게 되면,

좀 더 관련 제품에 관심을 자연히 가지게 되는데....



수도관련으로 하기 제품이 눈에 확 들어 오더군요 ^^


제품은 "샤워기 온도 디스플레이 센서" 제품입니다.




이 제품개념은 간단합니다.

물의 적당한 온도를 맞춰서 온수 수도꼭지를 돌려서 이용하지는 것입니다.


샤워를 할때나 욕탕에 물을 받을때 적정온도를 수치화시켜서

물의 양을 조절해서 사용할 수 있는 인텔리전트한 제품이죠 ^^




제품 판매 사이트 사진에 보면,

아이들 목욕을 하는 사진이 있습니다만,

부모들이 손으로 물의 온도감을 느끼고 적당한 온도를 찾아서 목욕을 시키게 됩니다만,

어느 순간에 급격하게 물의 온도 변화가 있을 수가 있습니다.


부모는 아이를 목욕 시키고 있는 도중이라서, 

쉽게 이를 알아 차리기가 어렵습니다....   

이때 샤워기 수온을 알 수 있으면 좋겠다는 생각을 몇번 해 본 적이 있었습니다. ^^








제품 포장도 아주 깔끔하게 디자인이 잘 되어 있습니다. 





























제품의 온도 디스플레이는 360도 회전이 가능하므로,

쉽게 볼 수 있는 방향으로 설정이 가능합니다.








이렇게 초고압 수전과 샤워기 온수 온도 센서를 간단히 설치해서

올해도 다시 칭찬(?)을 받을 수 있을지 시도를 해 보도록 하겠습니다. ^^










U5PVR 노래방 환경 구축 (1) - 블루투스 마이크 음질 문제로 실패 (작성중)

 

안녕하십니까 ?  EddyLab입니다.

U5PVR로 여러가지 응용 방법을 많이 찾아보고 있습니다.
이전에는 주로 해피칙관련 게임 내용을 주로 이야기 드렸습니다.




금번에는 가족과 같이 노래방을 열 수 있는 방법을 찾아 보겠습니다.


최근에 스마트폰과 블루투스 노래방 마이크를 연결하여 

노래방 역활을 해 주는 마이크가 인기를 끌고 있네요 ^^


가족단위로 즐길 수 있는 것이라서 괜찮은 것 같습니다.



간단 정리 내용)


1. 나홀로 노래방 앱을 U5PVR에 설치 하였습니다만, 유튜부 앱 연결 문제가 있어서 사용이 불가능하네요...   일단 스마트폰에 설치를 해서 최신 노래방 목록으로 참조 하시기 바랍니다.


2. U5PVR 유투브에 들어가셔서, 음성마이크 인식으로 명령을 합니다.


가수 + 노래곡명 + 노래방 이라고 음성 명령을 합니다.


즉, "임창정의 소주한잔 노래방" 또는 " 윤정신의 좋니 노래방"으로 음성명령을 합니다.


그러면 유투브에 있는 노래방(MR + 가사) 목록이 보여집니다.

이 중 선택하셔서 재생을 하시면 됩니다.


가수나 노래제목을 모르시면, 위의 1번 나홀로 노래방 앱을 노래방책 처럼 생각하시고 찾으시면 됩니다. ^^


3. 이제는 노래방 블루투스 마이크가 필요하겠지요 ?


노래방 블루투스 마이크는 U5PVR에서 나오는 오디오 출력을 받아서 스피커로 들려 줍니다.

그리고 내가 부르는 목소리를 믹싱해서 오디오 출력을 해 주게 됩니다..


간단하지요 ? ^^


제가 가지고 있던 오래된 노래방 BT마이크는 BT페어링은 되었지만,

음질이 끊겨서 사용 불가 이네요...



국내에서 저렴한 녀석을 하나 추가 구입해서 test를 해 보도록 하겠습니다..



이후 괜찮으면 중국에서 구입할 수 있는지도 알아 보고요 ㅎㅎㅎ




구정때에 가족모임에서 사용하시면 좋을 것 같습니다.



======================== 


 



Cover art


나홀로 노래방(쉽게 찾아 무료로 이용하는 노래방, 노래방책 즐겨찾기 지원, 가라오케)

https://play.google.com/store/apps/details?id=com.pump.noraebang&hl=ko
























































오디오 포커스 이해 (1 부 / 3 부)

일반적인 오디오 포커스 사용 사례

Android 휴대 전화의 많은 앱이 동시에 오디오를 재생할 수 있습니다. 안드로이드 운영 체제는 모든 오디오 스트림을 함께 믹싱하는 반면, 여러 애플 리케이션이 동시에 오디오를 재생할 때 사용자에게 매우 혼란을 줄 수 있습니다. 이로 인해 사용자는 휴대 전화에서 불만족스러워집니다. 좋은 UX를 제공하기 위해 안드로이드가 제공하는 API 응용 프로그램을 공유 할 수 있습니다 오디오 포커스를 하나의 응용 프로그램은 한 번에 오디오 초점을 저장할 수있는 곳을.

이 기사 시리즈의 목적은 오디오 포커스가 무엇인지, 좋은 미디어 UX를 제공하는 것이 중요한 이유 및 사용 방법을 심층적으로 이해하는 것입니다. 이것은 다음 세 가지 시리즈의 첫 번째 부분입니다.

  1. 훌륭한 미디어 시민이되는 것의 중요성과 가장 일반적인 Audio Focus 사용 사례 ( 이 기사 )
  2. Audio Focus가 미디어 앱의 UX에 중요한 다른 사용 사례
  3. 앱에서 Audio Focus를 구현하는 세 단계

오디오 포커스는 협업적이고 앱에 의존하여 오디오 포커스 가이드 라인을 준수합니다. 시스템은 규칙을 시행하지 않습니다. 앱이 오디오 포커스를 잃은 후에도 계속 큰 소리로 재생하고 싶다면 아무 것도이를 방지 할 수 없습니다. 그러나 사용자가 휴대 전화에서 사용하기에 좋지 않은 환경에 빠지게되고 이러한 방식으로 오작동하는 앱을 제거 할 수있는 좋은 기회가 생깁니다.

다음은 오디오 포커스가 작용하는 몇 가지 시나리오입니다. 사용자가 앱을 실행하고 오디오를 재생한다고 가정합니다.

앱에서 오디오를 출력해야하는 경우 오디오 포커스를 요청해야합니다. 포커스가 부여 된 후에 만 ​​사운드가 재생되어야합니다.

사용 사례 1 - 앱에서 오디오를 재생하는 동안 사용자가 다른 미디어 플레이어 앱을 시작하고 해당 앱에서 재생을 시작합니다.

앱에서 오디오 포커스를 처리하지 않으면 어떻게됩니까?

다른 미디어 앱이 오디오 재생을 시작하면 오디오를 재생하는 앱과 겹칩니다. 사용자가 어느 앱에서든 오디오를 제대로들을 수 없기 때문에 결과적으로 UX가 좋지 않습니다.

오디오 포커스를 처리하는 앱의 경우 어떻게해야합니까?

다른 미디어 앱이 재생을 시작하면 영구적 인 오디오 포커스를 요청합니다. 시스템에서 승인하면 재생이 시작됩니다. 사용자가 오디오를 다른 미디어 앱에서만들을 수 있도록 재생을 중지하여 앱에서 영구적 인 오디오 포커스 손실에 응답해야합니다.

이제 사용자가 앱에서 재생을 시작하면 앱에서 영구적 인 오디오 포커스를 다시 요청합니다. 앱이 오디오 재생을 시작하면이 포커스가 부여됩니다. 다른 앱은 재생을 중지하여 영구적 인 오디오 포커스 손실에 응답해야합니다.

사용 사례 2 - 앱이 오디오를 재생하는 동안 수신 전화가 도착합니다.

앱에서 오디오 포커스를 처리하지 않으면 어떻게됩니까?

휴대 전화가 울리기 시작하면 사용자는 벨소리 장치 외에도 앱의 오디오를 듣게됩니다. 이는 좋은 UX가 아닙니다. 통화 거부를 선택하면 오디오가 계속 재생됩니다. 통화를 수락하기로 선택하면 오디오가 전화기 오디오와 함께 재생됩니다. 호출이 끝나면 앱이 자동으로 재생을 재개하지 않으며 이는 좋은 UX가 아닙니다.

오디오 포커스를 처리하는 앱의 경우 어떻게해야합니까?

전화벨이 울리면 (사용자가 아직 응답하지 않은 경우) 앱은 오리 옵션 (전화 앱에서 요청하기 때문에)과 일시적인 오디오 포커스 손실에 응답해야합니다. 볼륨을 약 20 % ( 더킹 이라고 함 )로 줄이거 나 재생을 모두 일시 중지 하여 응답해야 합니다 (Podcast 또는 다른 음성 단어 유형의 앱인 경우).

  • 사용자가 통화를 거절하면 앱에서 볼륨을 복원하거나 재생을 다시 시작하여 오디오 포커스의 이득에 반응해야합니다.
  • 사용자가 전화를 수락하면 시스템에서 오디오 포커스 손실을 보냅니다 ( 오리 옵션 없음 ). 앱에서 응답으로 재생을 일시 중지해야합니다. 통화가 끝나면 앱은 최대 볼륨으로 오디오 재생을 다시 시작하여 오디오 포커스를 얻을 수 있습니다.

개요

앱에서 오디오를 출력해야하는 경우 오디오 포커스를 요청해야합니다. 포커스가 부여 된 후에 만 ​​사운드가 재생되어야합니다. 그러나 오디오 포커스를 얻은 후에는 앱에서 오디오 재생을 완료해야 오디오 포커스를 유지할 수 있습니다. 다른 앱에서 오디오 포커스를 유지하기 위해 포커스를 요청할 수 있습니다. 이 경우 앱에서 재생을 일시 중지하거나 볼륨을 낮추어 사용자가 새로운 오디오 소스를 더 쉽게들을 수있게해야합니다.

앱에서 오디오 포커스가 작용하는 다른 사용 사례에 대해 자세히 알아 보려면 이 연재 의 두 번째 기사를 읽어보세요 .

앱에서 오디오 포커스를 구현하는 방법에 대해 자세히 알아 보려면 이 연재 의 마지막 기사를 읽으십시오 .

Android 미디어 리소스



https://medium.com/google-developers/audio-focus-1-6b32689e4380



오디오 포커스 이해 (2/3 부)

기타 오디오 포커스 사용 사례

이 기사 시리즈의 목적은 오디오 포커스가 무엇인지, 좋은 미디어 UX를 제공하는 것이 중요한 이유 및 사용 방법에 대해 깊이있게 이해하는 것입니다. 이 시리즈의 두 번째 파트는 다음과 같습니다.

  1. 훌륭한 미디어 시민이되는 것의 중요성과 가장 일반적인 Audio Focus 사용 사례
  2. Audio Focus가 미디어 앱의 UX ( 이 기사 ) 에서 중요한 다른 사용 사례
  3. 앱에서 Audio Focus를 구현하는 세 단계

이 시리즈의 첫 번째 기사에서는 미디어 앱의 UX에 오디오 포커스가 중요한 경우에 발생할 수있는 가장 일반적인 사용 사례 두 가지를 다루었습니다. 이 기사에서는 오디오 앱의 동작을 세부적으로 조정할 수 있도록 앱에서 요청할 수있는 오디오 포커스 유형에 대한 개념을 소개합니다.

사용 사례 1 - 다른 앱이 오디오를 재생하는 동안 백그라운드에서 실행되는 탐색 앱이 단계별 안내를 제공합니다.

앱에서 오디오 포커스를 처리하지 않으면 어떻게됩니까?

네비게이션 방향과 음악이 겹쳐서 사용자에게 혼란을줍니다.

오디오 포커스를 처리하는 앱의 경우 어떻게해야합니까?

내비게이션 앱이 다음 방향을 말할 때 앱이 일시적인 오디오 포커스 손실 (덕킹 앱에 의해 요청되기 때문에)에 응답해야합니다.

이 일시적인 오디오 포커스 손실에 응답하기 위해 앱을 오리 (또는 볼륨을 약 20 %로 낮추어야 함)해야합니다. 앱에서 오디오 북, Podcast 또는 음성 단어를 재생하는 경우는 예외입니다.이 경우 재생을 일시 중지해야합니다.

길 찾기가 끝나면 내비게이션 앱이 오디오 포커스를 포기하고 앱에서 다시 얻게됩니다. 또한이 포커스 획득에 대한 응답으로 볼륨을 원래 수준으로 복원해야합니다.

사용 사례 2 - 사용자가 전화 통화 도중 게임을 실행합니다 (오디오를 재생 함).

앱에서 오디오 포커스를 처리하지 않으면 어떻게됩니까?

사용자는 음악과 전화 대화가 겹쳐서 좋지 않은 경험을하게됩니다.

오디오 포커스를 처리하는 앱의 경우 어떻게해야합니까?

Android O에는 지연된 오디오 포커스 게인 이라는 오디오 포커스 기능이 있습니다.이 기능 은 바로 그런 시나리오를 위해 만들어졌습니다. 예를 들어, 사용자가 전화 통화 중 시작하고, 오디오를 듣지 않고 계속 놀고 싶어하는 게임이 있지만 통화가 끝나면 게임에서 오디오를 듣고 싶습니다.

앱이 이것을 지원하고 사용자가 전화 통화 중 (일시적인 오디오 포커스를 획득 한 상태)에 오디오를 재생하려고하면 다음 두 가지 일이 발생합니다.

  1. 앱에서 영구적 인 오디오 포커스를 요청하면 고정되어있어 포커스 부여가 거부됩니다. 휴대 전화 앱은 이미 일시적인 오디오 포커스를 획득했습니다. 앱이 재생을 시작하면 안됩니다 (실제로는 나중에 오디오 포커스가 부여됩니다). 그러나 앱이 게임 인 경우 오디오없이 계속 작동 할 수 있습니다.
  2. 통화가 끝나면 앱에 오디오 포커스 게인 이 부여됩니다 이 보조금은 초기 요청이 이루어진 후 (사용자가 전화 통화를하는 동안) 일정 기간 지연됩니다. 과도기적 손실 후에 오디오 포커스를 얻은 후에도 같은 방식으로 처리 할 수 ​​있습니다. 이 경우 오디오 재생이 시작됩니다.

Oreo 이전의 Android 버전은 지연된 오디오 포커스 게인을 지원하지 않습니다 이 버전에서 사용자가 전화 통화 중에 오디오 재생을 시작하려고하면 오디오 포커스 요청이 허용되지 않고 전화가 끊긴 후에도 재생이 시작되지 않습니다.

사례 3 - 탐색 앱 또는 오디오 알림 또는 알림을 생성하는 앱

짧은 기간 동안 오디오를 버스트로 생성하는 앱을 제작하는 경우 좋은 UX를 사용자에게 제공하기 위해서는 오디오 포커스가 매우 중요합니다. 이를 수행하는 앱의 예로 알림 소리 또는 미리 알림 소리가 생성됩니다. 또는 백그라운드에서 방향을 전환하여 음성 회선을 생성하는 앱.

앱이 백그라운드에서 실행 중이며 오디오를 생성하려고한다고 가정 해 보겠습니다. 사용자가 음악이나 Podcast를 듣고 있으며 앱에서 짧은 시간 동안 오디오를 생성합니다.

앱에서 오디오를 생성하기 전에 일시적인 오디오 포커스 (오리 옵션 포함)를 요청해야합니다. 오디오를 재생할 때만 포커스가 부여되었을 때만. 그리고 잘 작동하는 음악 앱은 오디오 포커스와 오리의 일시적인 손실을 존중해야합니다. 다른 앱이 팟 캐스트 앱인 경우 재생을 다시 시작하기 위해 오디오 포커스가 회복 될 때까지 일시 중지하는 것이 좋습니다. 오디오 포커스를 요청하지 않으면 사용자는 자신의 음악이나 Podcast 및 앱의 오디오를 동시에 듣게됩니다.

유스 케이스 4 - 음성 녹음기 앱 또는 음성 인식 앱

시스템 또는 다른 앱이 소리 (알림 또는 기타 미디어 재생)를하지 않아야하는 일정 기간 동안 오디오를 녹음해야하는 앱을 제작하는 경우 좋은 UX를 제공하려면 오디오 포커스를 처리하는 것이 중요합니다. 이를 수행하는 앱의 예로는 음성 메모 녹음 앱 또는 음성 인식 앱이 있습니다.

앱에서 일시적이고 독점적 인 오디오 포커스를 요청해야합니다. 시스템에서이 권한을 부여한 경우 시스템에서 생성 된 다른 소리가 녹음을 오염시키지 않는다는 것을 알면서 오디오 녹음을 시작할 수 있습니다. 이 녹음 기간 동안 다른 앱이 오디오 포커스를 요청하면 거부 될 것입니다. 사용자가 녹음을 마쳤 으면 시스템에서 소리를 정상적으로 재생할 수 있도록 오디오 포커스를 포기해야합니다.

개요

앱에서 오디오를 출력해야하는 경우 오디오 포커스를 요청해야하며 요청할 수있는 다양한 유형의 포커스가 있어야합니다.

포커스가 부여 된 후에 만 ​​사운드가 재생되어야합니다. 그러나 오디오 포커스를 얻은 후에는 앱에서 오디오 재생을 완료해야 오디오 포커스를 유지할 수 있습니다.

다른 앱에서 오디오 포커스를 유지하기 위해 포커스를 요청할 수 있습니다. 이 경우 앱에서 재생을 일시 중지하거나 볼륨을 낮추어 (더킹) 사용자가 새로운 오디오 소스를 더 쉽게들을 수있게해야합니다.

Android O에서 앱이 요청할 때 오디오 포커스를 얻을 수없는 경우 시스템에서 앱을 사용할 수있게되면 (지연된 포커스) 앱에 제공 할 수 있습니다.

앱에서 오디오 포커스를 구현하는 방법에 대해 자세히 알아 보려면 이 연재 의 마지막 기사를 읽으십시오 .

https://medium.com/google-developers/audio-focus-2-42244043863a


오디오 포커스 이해 (3/3 부)

앱에서 Audio Focus를 구현하는 3 단계

이 기사 시리즈의 목적은 오디오 포커스가 무엇인지, 좋은 미디어 UX를 제공하는 것이 중요한 이유 및 사용 방법에 대해 깊이있게 이해하는 것입니다. 이 시리즈의 마지막 부분은 다음과 같습니다.

  1. 훌륭한 미디어 시민이되는 것의 중요성과 가장 일반적인 Audio Focus 사용 사례
  2. Audio Focus가 미디어 앱의 UX에 중요한 다른 사용 사례
  3. 앱에서 Audio Focus를 구현하는 세 단계 ( 이 기사 )

오디오 포커스를 올바르게 처리하지 못하면 다음 다이어그램은 사용자가 전화기에서 겪을 수있는 영향을 보여줍니다.

이제 사용자가 휴대 전화에서 좋은 미디어 경험을 얻으려면 좋은 미디어 시민이되는 앱의 중요성을 알게되었으므로 앱에서 오디오 포커스를 올바르게 처리 할 수있는 단계를 수행해 보겠습니다.

코드로 들어가기 전에 다음 다이어그램은 앱에서 오디오 포커스를 구현하기 위해 수행 할 단계를 요약 한 것입니다.

1 단계 : 포커스 요청하기

오디오 포커스를 얻는 첫 번째 단계는 안드로이드 시스템이 그것을 얻기 위해 요청하는 것입니다. 요청을했기 때문에 그것이 부여된다는 것을 의미하지는 않습니다. 오디오 포커스를 얻으려는 요청을하려면 시스템에 "의도"를 선언해야합니다. 여기 몇 가지 예가 있어요.

  • 앱이 사용자가 앱에서 오디오를 재생하도록 선택하는 한 오디오 포커스를 무기한 일정으로 유지할 미디어 플레이어 또는 Podcast 플레이어입니까?  This is AUDIOFOCUS_GAIN.
  • 또는 오디오 알림 또는 음성 방향 전환으로 재생해야하거나 짧은 시간 동안 사용자의 오디오를 녹음해야하기 때문에 일시적으로 오디오 포커스 (오리 옵션 포함)가 필요합니까? 
  • This is AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK.
  • 통화가 연결되면 휴대 전화 앱처럼 일시적으로 오디오 포커스가 필요합니까 (그러나 알 수없는 지속 시간, 오리 옵션 없음)?  
  • This is AUDIOFOCUS_GAIN_TRANSIENT.
  • 음성 메모 앱과 같은 오디오를 녹음해야하기 때문에 일시적으로 오디오 포커스가 필요합니까 (다른 소리는 생성되지 않는 알 수없는 기간 동안)?  This is AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE.

Android O 이상에서는 AudioFocusRequest객체 를 만들어야 합니다 (a 사용 builder). 그리고이 객체에서 앱이 오디오 포커스를 획득하는 데 필요한 기간을 지정해야합니다. 다음 코드 스 니펫은 시스템에서 오디오 포커스를 영구적으로 획득 할 의사를 선언합니다.

AudioManager mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
AudioAttributes mAudioAttributes =
new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build();
AudioFocusRequest mAudioFocusRequest =
new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN)
.setAudioAttributes(mAudioAttributes)
.setAcceptsDelayedFocusGain(true)
.setOnAudioFocusChangeListener(...) // Need to implement listener
.build();
int focusRequest = mAudioManager.requestAudioFocus(mAudioFocusRequest);
switch (focusRequest) {
case AudioManager.AUDIOFOCUS_REQUEST_FAILED:
// don’t start playback
case AudioManager.AUDIOFOCUS_REQUEST_GRANTED:
// actually start playback
}

코드에 대한 참고 사항 :

  1. AudioManager.AUDIOFOCUS_GAIN시스템에서 영원한 오디오 포커스를 요청 하는 것이 무엇입니까. 당신은 또한 같은 다른 INT 값을, 그것을 전달할 수 있습니다 AUDIOFOCUS_GAIN_TRANSIENT, 또는 AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK당신은 단지 일시적인 오디오 사용을 원하는 경우.
  2. 메소드에 AudioManager.OnAudioFocusChangeListener구현 을 전달해야합니다 setOnAudioFocusChangeListener()이것은 시스템에서 발생하는 이벤트에 의해 구동되는 오디오 포커스 변경 사항을 처리 할 코드 부분입니다. 다른 앱의 사용자 상호 작용에서 시작될 수 있습니다. 예를 들어, 앱이 영구적 인 오디오 포커스를 얻었지만 사용자가 다른 앱을 실행하면 앱이 사라집니다. 이 수신기는 앱이이 초점 손실을 처리해야하는 곳입니다.
  3. 일단 AudioFocusRequest객체를 만들었 으면 객체 AudioManager를 호출하여 오디오 포커스 를 요청할 수 있습니다 requestAudioFocus(…)이렇게하면 오디오 포커스 요청의 허용 여부를 나타내는 정수 값이 반환됩니다. 해당 값이있는 경우에만 AUDIOFOCUS_REQUEST_GRANTED즉시 재생을 시작해야합니다. 그리고 만약 AUDIOFOCUS_REQUEST_FAILED그렇다면, 시스템은 그 순간에 오디오 포커스의 앱 획득을 거부했습니다.

Android N 및 이전 버전 AudioFocusRequest에서는 아래와 같이 객체를 사용하지 않고이 의도를 선언 할 수 있습니다. 여전히 구현해야합니다 AudioManager.OnAudioFocusChangeListener위의 스 니펫과 동일한 코드가 있습니다.

AudioManager mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
int focusRequest = mAudioManager.requestAudioFocus(
..., // Need to implement listener
AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
switch (focusRequest) {
case AudioManager.AUDIOFOCUS_REQUEST_FAILED:
// don't start playback
case AudioManager.AUDIOFOCUS_REQUEST_GRANTED:
// actually start playback
}

다음으로 우리는 AudioManager.OnAudioFocusChangeListener앱이 오디오 포커스 게인과 손실의 변화에 ​​반응 할 수 있도록 구현해야합니다 .

2 단계 : 오디오 포커스 상태 변경에 응답

앱에 오디오 포커스가 부여되면 (일시적이든 영구적이든) 언제든지 변경 될 수 있습니다. 그리고 앱은이 변화에 반응해야합니다. 이것이 OnAudioFocusChangeListener구현 에서 일어나는 일입니다 .

다음 코드 스 니펫에는 오디오를 재생하는 앱에 대한이 인터페이스의 구현이 포함되어 있습니다. 또한 일시적인 오디오 포커스 손실을 방지하기 위해 더킹을 처리합니다. 또한 사용자가 재생을 일시 중지하여 오디오 포커스 변경을 처리합니다. 다른 애플리케이션 ( 예 : Google Assistant )이 일시적인 오디오 포커스 손실을 유발합니다.

private final class AudioFocusHelper
implements AudioManager.OnAudioFocusChangeListener {
private void abandonAudioFocus() {
mAudioManager.abandonAudioFocus(this);
}
@Override
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
if (mPlayOnAudioFocus && !isPlaying()) {
play();
} else if (isPlaying()) {
setVolume(MEDIA_VOLUME_DEFAULT);
}
mPlayOnAudioFocus = false;
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
setVolume(MEDIA_VOLUME_DUCK);
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
if (isPlaying()) {
mPlayOnAudioFocus = true;
pause();
}
break;
case AudioManager.AUDIOFOCUS_LOSS:
mAudioManager.abandonAudioFocus(this);
mPlayOnAudioFocus = false;
stop();
break;
}
}
}

다른 앱이 일시적인 오디오 포커스를 요청하고 재생이 일시 중지되는 대신 (일시 중지하는 대신) 사용자가 재생 일시 중지를 시작하면 앱이 다르게 작동해야합니다. 사용자가 재생 일시 중지를 시작하면 앱에서 오디오 포커스를 포기해야합니다. 그러나 일시적인 오디오 포커스 손실에 대한 응답으로 앱이 일시 중지 된 경우 오디오 포커스를 포기해서는 안됩니다. 이것을 설명하기위한 몇 가지 유스 케이스가 있습니다.

백그라운드에서 오디오를 재생하는 오디오 재생 앱이 있다고 가정 해 보겠습니다.

  1. 사용자가 재생을 누르면 앱에서 영구적 인 오디오 포커스를 요구합니다. 시스템에서 오디오 포커스를 부여 받았다고 가정 해 봅시다.
  2. 이제는 홈 버튼을 길게 누르면 Google 길잡이가 시작됩니다. Assistant는 일시적인 오디오 포커스를 요청합니다.
  3. 시스템이 지원이 부여되면, 당신의 OnAudioFocusChangeListener얻을 것이다 AUDIOFOCUS_LOSS_TRANSIENT이벤트를. Assistant에서는 오디오를 녹음해야하므로 여기에서 재생을 일시 중지합니다.
  4. 길잡이가 완료되면, 그것의 오디오 사용을 포기합니다, 당신의 응용 프로그램은 부여됩니다 AUDIOFOCUS_GAIN에 OnAudioFocusChangeListener여기서 재생을 재개할지 여부를 결정해야합니다. 그리고 mPlayOnAudioFocus위의 코드 스 니펫에서 플래그가 수행하는 작업입니다.

다음 코드 스 니펫은 사용자가 시작한 일시 중지 방법이이 오디오 플레이어 앱에서와 같이 보일 수 있습니다.

public final void pause() {
if (!mPlayOnAudioFocus) {
mAudioFocusHelper.abandonAudioFocus();
}
onPause();
}

보시다시피 사용자가 재생을 일시 중지 할 때 오디오 포커스를 포기하고 다른 앱이 포착 할 때 오디오 포커스를 포기하지는 않습니다 AUDIOFOCUS_GAIN_TRANSIENT.

일시적인 오디오 포커스 손실시 일시 중지 대 더킹

재생을 일시 중지할지 또는 일시적으로 OnAudioFocusChangeListener앱에서 제공해야하는 UX에 따라 오디오 재생 볼륨을 줄일 수 있습니다 Android O는 자동 더킹을 지원하며 시스템에서 추가 코드를 작성하지 않아도 자동으로 앱 볼륨을 줄입니다. 당신의에서 OnAudioFocusChangeListener그냥 무시AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK이벤트를.

Android N 및 이전 버전에서는 위의 코드 스 니펫과 같이 직접 더킹을 구현해야합니다.

지연된 이득

Android O는 지연된 오디오 포커스 게인 개념을 도입했습니다. 이를 구현하기 위해 오디오 포커스를 요청하면 AUDIOFOCUS_REQUEST_DELAYED아래와 같이 결과를 얻을 수 있습니다.

public void requestPlayback() {
int audioFocus = mAudioManager.requestAudioFocus(mAudioFocusRequest);
switch (audioFocus) {
case AudioManager.AUDIOFOCUS_REQUEST_FAILED:
...
case AudioManager.AUDIOFOCUS_REQUEST_GRANTED:
...
case AudioManager.AUDIOFOCUS_REQUEST_DELAYED:
mAudioFocusPlaybackDelayed = true;
}
}

당신에 OnAudioFocusChangeListener구현, 당신은 다음을 확인해야합니다 mAudioFocusPlaybackDelayed당신이 응답 할 때 변수를 AUDIOFOCUS_GAIN다음과 같이.

private void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
logToUI("Audio Focus: Gained");
if (mAudioFocusPlaybackDelayed || mAudioFocusResumeOnFocusGained) {
mAudioFocusPlaybackDelayed = false;
mAudioFocusResumeOnFocusGained = false;
start();
}
break;
case AudioManager.AUDIOFOCUS_LOSS:
mAudioFocusResumeOnFocusGained = false;
mAudioFocusPlaybackDelayed = false;
stop();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
mAudioFocusResumeOnFocusGained = true;
mAudioFocusPlaybackDelayed = false;
pause();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
pause();
break;
}
}

3 단계 : 오디오 포커스를 포기하는 것을 잊지 마십시오.

앱의 오디오 재생이 완료되면 전화로 오디오 포커스를 포기해야합니다 AudioManager.abandonAudioFocus(…)이전 단계에서는 사용자가 재생을 일시 중지했을 때 오디오 포커스를 포기하는 앱의 상황을 들었지만 다른 앱이 일시적으로 중단했을 때 오디오 포커스를 유지하는 앱이있었습니다.

코드 샘플

앱에서 사용할 수있는 요점

이 GitHub 요지 에는 앱에서 사용할 수있는 오디오 포커스 코드를 다루는 3 개의 클래스 가 있습니다.

  • AudioFocusRequestCompat -이 클래스를 사용하여 앱에 필요한 오디오 포커스 유형을 설명합니다.
  • AudioFocusHelper -이 클래스는 실제로 오디오 포커스를 처리합니다. 앱에 포함시킬 수 있지만 오디오 재생 서비스에서 아래 인터페이스를 사용해야합니다.
  • AudioFocusAwarePlayer -이 인터페이스는 미디어 플레이어 ( MediaPlayer또는 ExoPlayer를 관리하는 서비스에 의해 구현되어야하며 AudioFocusHelper클래스가 오디오 포커스로 작동 하도록 허용합니다 .

완전한 코드 샘플

이 android-MediaBrowserService샘플에서는 MediaPlayer백그라운드에서 오디오를 실제로 재생 하는 Android 앱에서 오디오 포커스를 처리하는 방법을 보여줍니다 그것은 또한 사용합니다 MediaSession.

샘플에는 PlayerAdapter오디오 포커스 모범 사례를 보여주는 클래스가 있습니다. 상기에서 살펴 보시기 바랍니다 pause()및 onAudioFocusChange(int)방법을 구현한다.

코드 테스트

앱에 오디오 포커스를 구현 한 후에 Android Media Controller 도구를 사용하여 앱의 포커스 획득 및 손실에 대한 반응을 테스트 할 수 있습니다. 당신은 GitHub에서 그것을 얻을 수 있습니다 .

https://medium.com/google-developers/audio-focus-3-cdc09da9c122







$ 17 Sonoff S31 무선 스마트 소켓, 에너지 모니터링 기능 포함



ITEAD Studio는 에너지 모니터링 기능이있는 Sonoff S31 WiFi 스마트 소켓이 장착 된 다른 Sonoff Smart Home 제품을 출시했습니다. 마찬가지로 Sonoff 스위치 , 전구 , 그들의 다른 제품, 장치가 안드로이드 또는 iOS 용 eWelink 응용 프로그램을 사용하여 제어, 아마존 알렉사과의 통합을 지원하며, 구글 지원 할 수 있습니다.

이 회사는 현재 미국 플러그 버전만을 제공하고 있으며, 지금까지 Wiki 링크가 없으므로 ESP8266 또는 ESP8285를 기반으로 다른 Sonoff 디바이스와 마찬가지로 쉽게 해킹 가능하도록 설계되지는 않았지만, 전자 제품이 Sonoff POW 스위치 (TBC) 와 비슷할 수도 있습니다 .

Sonoff S31 하드웨어 사양 ITEAD에 의해 나열된 :

  • 전압 입력 - 90 ~ 264V AC, 50 / 60HZ
  • 맥스. 전류 - 16A
  • 맥스. 전력 - 4200W (위의 참고 패키지는 최대로드 : 220V / 10A)
  • 갱 - 땅에 1x 미국 유형
  • 연결성 - WEP / WPA-PSK / WPA2-PSK를 지원하는 802.11 b / g / n WiFi
  • 기타 - 전원 버튼, LED
  • 크기 - 75.7 × 39.7x32mm
  • 무게 - 135g
  • 온도 범위 -20 ° C ~ 75 ° C
  • 습도 - 10 % -80 %

또한 소켓에는 안전을위한 과부하 보호 기능이 포함되어 있으며 Android / iOS 용 eWelink 앱을 원격으로 제어하고 전력 소비 및 예상 전기 요금을 모니터링하고 타이머를 설정하고 가정의 다른 사용자와 안전하게 공유 할 수 있습니다.

이 회사는 또한 사용자가 2-gang 상자에 2 개의 소켓을 연결할 수 있다고 주장하면서 컴팩트 한 디자인을 강조합니다. Sonoff-Tasmota 나 ESPurna와 같은 대체 오픈 소스 펌웨어를 선호한다면, 제품이 여전히 매우 새롭기 때문에 기다리거나 직접해야 할 것입니다.

Facebook에 많은 사람들이 EU 플러그가 없다고 불평하고 있기 때문에, 회사에서주의를 기울여 곧 호환 버전을 제공 하겠지만, 그 사이 에 ITEAD Studio 스토어에서 $ 16.90으로 미국 버전의 Sonoff S31을 구입할 수 있습니다. [업데이트 : Sonof S31은 Aliexpress에서 배송 된 $ 16.90 에서 찾을 수 있습니다 .]


https://www.cnx-software.com/2017/12/27/17-sonoff-s31-wireless-smart-socket-includes-energy-monitoring-function/

+ Recent posts