이번 주에 공개 된 하나 이상의 보안 취약점 은 거의 모든 최신 스마트 폰, PC 및 서버 프로세서에 영향을 미칩니다. Intel 프로세서는 Meltdown 및 Spectre 공격에 취약합니다. AMD 칩은 스펙터 (Specter) 공격에 취약합니다. 또한 최신 스마트 폰에서 사용되는 ARM 기반 프로세서는 Spectre 공격에 취약합니다.
하드웨어 및 소프트웨어 회사는 위험을 완화하기 위해 소프트웨어 업데이트 를 추진하고 있습니다. 그러나 새로운 취약점으로부터 안전하기 위해서는 20 년 된 PC를 사용할 필요가 없습니다. 이미 안전하다고 생각되는 비교적 현대적인 컴퓨터가 하나 이상 있습니다. 저렴한, 소형 및 저전력 컴퓨터 인 Raspberry Pi 제품군이 있습니다.
Raspberry Pi Foundation은 Meltdown과 Spectre 공격이 어떻게 작동 하는지를 설명하는 오랜 블로그 게시물을 게시 했습니다. 공격에 대해 더 깊이 이해하고 싶지만 컴퓨터 과학 학위를받는 것을 원하지 않는다면 모든 것을 읽을 가치가 있습니다.
그러나 왜 라스베리 파이의 컴퓨터가 안전 한가에 대한 짧은 버전이 있습니다. 추측 실행을 사용하지 않는 구식 ARM 디자인을 기반으로하는 프로세서를 사용합니다.
한편으로는 가장 최신의 라즈베리 파이 컴퓨터조차도 다른 대부분의 최신 PC만큼 빠르지 않은 이유 중 하나입니다. 한편, Raspberry Pi는 실수로 ARM11, ARM Cortex-A7 및 ARM Cortex-A53 CPU 코어를 보안 기능으로 전환했습니다.
Raspberry Pi 컴퓨터는 정확히 가장 빠른 PC가 아니지만 다양한 GNU / Linux 기반 소프트웨어를로드 하고 웹 서핑, 문서 편집 또는 미디어 재생과 같은 작업에 범용 컴퓨터로 사용할 수 있습니다. 심지어 서버로 사용할 수도 있습니다.
그들은 교육자와 학생을 위해 디자인되었을 수도 있지만, 복고풍 게임 콘솔 , 미디어 센터 등 을 만드는 사람들에게 인기가 많습니다.
인텔 코어 i7 기반 랩탑이나 데스크탑을 대체하기 위해 서둘러 라즈베리 파이 (Raspberry Pi)를 구입할 것을 권장하지는 않습니다. 그러나 Spectre and Meltdown 취약점에 대한 편집증이 있다면 완전히 우스운 아이디어는 아닙니다. 그것은 단지 우스운 이야기 일뿐입니다.
한편 다음 ARM 기술 중 하나를 사용하는 전화, 태블릿 또는 라즈베리 파이와 같은 단일 보드 컴퓨터가 있는 경우 최근에 공개 된 공격 변종 중 하나 이상에 취약 할 수 있습니다.
ARM Cortex-R7
ARM Cortex-R8
ARM Cortex-A8
ARM Cortex-A9
ARM Cortex-A15
ARM Cortex-A7
ARM Cortex-A57
ARM Cortex-A72
ARM Cortex-A73
ARM Cortex-A75
최신 이슈로, 마지막으로는 아직 시장에 나와 있지 않습니다. 그러나 새로운 디자인을 사용하는 칩을 사용할 수있는 경우 Spectre 와 Meltdown에 취약한 유일한 ARM 기반 칩이 될 것 입니다. 영향을 많이받는 ARM 디자인은 Spectre 관련 공격에만 취약합니다.
아이폰 제조업체는 데이터 계획을 쉽게 수행 할 수 있도록 고안된 압축 기술을 보증하는 최첨단 기술 업체 중 마지막 기업으로 합류하게 되었습니다.
몇 달 동안 구글, 아마존, 마이크로 소프트, 페이스 북을 포함한 강력한 회사들은 온라인 비디오 크기를 줄이기 위해 노력해 왔습니다 . 그러나 애플이 이제 파트너쉽에 가입했기 때문에 그들의 작품은 더욱 중요 해졌다.
오픈 미디어 얼라이언스 (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의 의견을 추가합니다.
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 백 배나 향상된 것으로 나타났습니다.
RK3399Pro NPU는 8 비트 및 16 비트 연산을 지원하며 OpenVX 및 TensorFlow Lite / AndroidNN API를 비롯한 다양한 AI 소프트웨어 프레임 워크 및 API와 호환되며 Caffe / TensorFlow 모델을 처리 할 수있는 인공 지능 소프트웨어 도구와 함께 제공됩니다. 개발 속도를 높이기 위해 RK3399Pro 하드웨어 레퍼런스 디자인을 제공 할 수도 있지만 세부 사항은 제공되지 않았다.
[ 업데이트 : 위의 표에서 RK3399Pro 번호를 확인하는 중국어로 된 몇 가지 세부 정보입니다. 출처 : China.com
Android 휴대 전화의 많은 앱이 동시에 오디오를 재생할 수 있습니다. 안드로이드 운영 체제는 모든 오디오 스트림을 함께 믹싱하는 반면, 여러 애플 리케이션이 동시에 오디오를 재생할 때 사용자에게 매우 혼란을 줄 수 있습니다. 이로 인해 사용자는 휴대 전화에서 불만족스러워집니다. 좋은 UX를 제공하기 위해 안드로이드가 제공하는 API 응용 프로그램을 공유 할 수 있습니다 오디오 포커스를 하나의 응용 프로그램은 한 번에 오디오 초점을 저장할 수있는 곳을.
이 기사 시리즈의 목적은 오디오 포커스가 무엇인지, 좋은 미디어 UX를 제공하는 것이 중요한 이유 및 사용 방법을 심층적으로 이해하는 것입니다. 이것은 다음 세 가지 시리즈의 첫 번째 부분입니다.
훌륭한 미디어 시민이되는 것의 중요성과 가장 일반적인 Audio Focus 사용 사례 ( 이 기사 )
오디오 포커스는 협업적이고 앱에 의존하여 오디오 포커스 가이드 라인을 준수합니다. 시스템은 규칙을 시행하지 않습니다. 앱이 오디오 포커스를 잃은 후에도 계속 큰 소리로 재생하고 싶다면 아무 것도이를 방지 할 수 없습니다. 그러나 사용자가 휴대 전화에서 사용하기에 좋지 않은 환경에 빠지게되고 이러한 방식으로 오작동하는 앱을 제거 할 수있는 좋은 기회가 생깁니다.
다음은 오디오 포커스가 작용하는 몇 가지 시나리오입니다. 사용자가 앱을 실행하고 오디오를 재생한다고 가정합니다.
앱에서 오디오를 출력해야하는 경우 오디오 포커스를 요청해야합니다. 포커스가 부여 된 후에 만 사운드가 재생되어야합니다.
사용 사례 1 - 앱에서 오디오를 재생하는 동안 사용자가 다른 미디어 플레이어 앱을 시작하고 해당 앱에서 재생을 시작합니다.
앱에서 오디오 포커스를 처리하지 않으면 어떻게됩니까?
다른 미디어 앱이 오디오 재생을 시작하면 오디오를 재생하는 앱과 겹칩니다. 사용자가 어느 앱에서든 오디오를 제대로들을 수 없기 때문에 결과적으로 UX가 좋지 않습니다.
오디오 포커스를 처리하는 앱의 경우 어떻게해야합니까?
다른 미디어 앱이 재생을 시작하면 영구적 인 오디오 포커스를 요청합니다. 시스템에서 승인하면 재생이 시작됩니다. 사용자가 오디오를 다른 미디어 앱에서만들을 수 있도록 재생을 중지하여 앱에서 영구적 인 오디오 포커스 손실에 응답해야합니다.
이제 사용자가 앱에서 재생을 시작하면 앱에서 영구적 인 오디오 포커스를 다시 요청합니다. 앱이 오디오 재생을 시작하면이 포커스가 부여됩니다. 다른 앱은 재생을 중지하여 영구적 인 오디오 포커스 손실에 응답해야합니다.
사용 사례 2 - 앱이 오디오를 재생하는 동안 수신 전화가 도착합니다.
앱에서 오디오 포커스를 처리하지 않으면 어떻게됩니까?
휴대 전화가 울리기 시작하면 사용자는 벨소리 장치 외에도 앱의 오디오를 듣게됩니다. 이는 좋은 UX가 아닙니다. 통화 거부를 선택하면 오디오가 계속 재생됩니다. 통화를 수락하기로 선택하면 오디오가 전화기 오디오와 함께 재생됩니다. 호출이 끝나면 앱이 자동으로 재생을 재개하지 않으며 이는 좋은 UX가 아닙니다.
오디오 포커스를 처리하는 앱의 경우 어떻게해야합니까?
전화벨이 울리면 (사용자가 아직 응답하지 않은 경우) 앱은 오리 옵션 (전화 앱에서 요청하기 때문에)과 일시적인 오디오 포커스 손실에 응답해야합니다. 볼륨을 약 20 % ( 더킹 이라고 함 )로 줄이거 나 재생을 모두 일시 중지 하여 응답해야 합니다 (Podcast 또는 다른 음성 단어 유형의 앱인 경우).
사용자가 통화를 거절하면 앱에서 볼륨을 복원하거나 재생을 다시 시작하여 오디오 포커스의 이득에 반응해야합니다.
사용자가 전화를 수락하면 시스템에서 오디오 포커스 손실을 보냅니다 ( 오리 옵션 없음 ). 앱에서 응답으로 재생을 일시 중지해야합니다. 통화가 끝나면 앱은 최대 볼륨으로 오디오 재생을 다시 시작하여 오디오 포커스를 얻을 수 있습니다.
개요
앱에서 오디오를 출력해야하는 경우 오디오 포커스를 요청해야합니다. 포커스가 부여 된 후에 만 사운드가 재생되어야합니다. 그러나 오디오 포커스를 얻은 후에는 앱에서 오디오 재생을 완료해야 오디오 포커스를 유지할 수 있습니다. 다른 앱에서 오디오 포커스를 유지하기 위해 포커스를 요청할 수 있습니다. 이 경우 앱에서 재생을 일시 중지하거나 볼륨을 낮추어 사용자가 새로운 오디오 소스를 더 쉽게들을 수있게해야합니다.
앱에서 오디오 포커스가 작용하는 다른 사용 사례에 대해 자세히 알아 보려면 이 연재 의 두 번째 기사를 읽어보세요 .
이 시리즈의 첫 번째 기사에서는 미디어 앱의 UX에 오디오 포커스가 중요한 경우에 발생할 수있는 가장 일반적인 사용 사례 두 가지를 다루었습니다. 이 기사에서는 오디오 앱의 동작을 세부적으로 조정할 수 있도록 앱에서 요청할 수있는 오디오 포커스 유형에 대한 개념을 소개합니다.
사용 사례 1 - 다른 앱이 오디오를 재생하는 동안 백그라운드에서 실행되는 탐색 앱이 단계별 안내를 제공합니다.
앱에서 오디오 포커스를 처리하지 않으면 어떻게됩니까?
네비게이션 방향과 음악이 겹쳐서 사용자에게 혼란을줍니다.
오디오 포커스를 처리하는 앱의 경우 어떻게해야합니까?
내비게이션 앱이 다음 방향을 말할 때 앱이 일시적인 오디오 포커스 손실 (덕킹 앱에 의해 요청되기 때문에)에 응답해야합니다.
이 일시적인 오디오 포커스 손실에 응답하기 위해 앱을 오리 (또는 볼륨을 약 20 %로 낮추어야 함)해야합니다. 앱에서 오디오 북, Podcast 또는 음성 단어를 재생하는 경우는 예외입니다.이 경우 재생을 일시 중지해야합니다.
길 찾기가 끝나면 내비게이션 앱이 오디오 포커스를 포기하고 앱에서 다시 얻게됩니다. 또한이 포커스 획득에 대한 응답으로 볼륨을 원래 수준으로 복원해야합니다.
사용 사례 2 - 사용자가 전화 통화 도중 게임을 실행합니다 (오디오를 재생 함).
앱에서 오디오 포커스를 처리하지 않으면 어떻게됩니까?
사용자는 음악과 전화 대화가 겹쳐서 좋지 않은 경험을하게됩니다.
오디오 포커스를 처리하는 앱의 경우 어떻게해야합니까?
Android O에는 지연된 오디오 포커스 게인 이라는 오디오 포커스 기능이 있습니다.이 기능 은 바로 그런 시나리오를 위해 만들어졌습니다. 예를 들어, 사용자가 전화 통화 중 시작하고, 오디오를 듣지 않고 계속 놀고 싶어하는 게임이 있지만 통화가 끝나면 게임에서 오디오를 듣고 싶습니다.
앱이 이것을 지원하고 사용자가 전화 통화 중 (일시적인 오디오 포커스를 획득 한 상태)에 오디오를 재생하려고하면 다음 두 가지 일이 발생합니다.
앱에서 영구적 인 오디오 포커스를 요청하면 고정되어있어 포커스 부여가 거부됩니다. 휴대 전화 앱은 이미 일시적인 오디오 포커스를 획득했습니다. 앱이 재생을 시작하면 안됩니다 (실제로는 나중에 오디오 포커스가 부여됩니다). 그러나 앱이 게임 인 경우 오디오없이 계속 작동 할 수 있습니다.
통화가 끝나면 앱에 오디오 포커스 게인 이 부여됩니다 . 이 보조금은 초기 요청이 이루어진 후 (사용자가 전화 통화를하는 동안) 일정 기간 지연됩니다. 과도기적 손실 후에 오디오 포커스를 얻은 후에도 같은 방식으로 처리 할 수 있습니다. 이 경우 오디오 재생이 시작됩니다.
Oreo 이전의 Android 버전은 지연된 오디오 포커스 게인을 지원하지 않습니다 . 이 버전에서 사용자가 전화 통화 중에 오디오 재생을 시작하려고하면 오디오 포커스 요청이 허용되지 않고 전화가 끊긴 후에도 재생이 시작되지 않습니다.
사례 3 - 탐색 앱 또는 오디오 알림 또는 알림을 생성하는 앱
짧은 기간 동안 오디오를 버스트로 생성하는 앱을 제작하는 경우 좋은 UX를 사용자에게 제공하기 위해서는 오디오 포커스가 매우 중요합니다. 이를 수행하는 앱의 예로 알림 소리 또는 미리 알림 소리가 생성됩니다. 또는 백그라운드에서 방향을 전환하여 음성 회선을 생성하는 앱.
앱이 백그라운드에서 실행 중이며 오디오를 생성하려고한다고 가정 해 보겠습니다. 사용자가 음악이나 Podcast를 듣고 있으며 앱에서 짧은 시간 동안 오디오를 생성합니다.
앱에서 오디오를 생성하기 전에 일시적인 오디오 포커스 (오리 옵션 포함)를 요청해야합니다. 오디오를 재생할 때만 포커스가 부여되었을 때만. 그리고 잘 작동하는 음악 앱은 오디오 포커스와 오리의 일시적인 손실을 존중해야합니다. 다른 앱이 팟 캐스트 앱인 경우 재생을 다시 시작하기 위해 오디오 포커스가 회복 될 때까지 일시 중지하는 것이 좋습니다. 오디오 포커스를 요청하지 않으면 사용자는 자신의 음악이나 Podcast 및 앱의 오디오를 동시에 듣게됩니다.
유스 케이스 4 - 음성 녹음기 앱 또는 음성 인식 앱
시스템 또는 다른 앱이 소리 (알림 또는 기타 미디어 재생)를하지 않아야하는 일정 기간 동안 오디오를 녹음해야하는 앱을 제작하는 경우 좋은 UX를 제공하려면 오디오 포커스를 처리하는 것이 중요합니다. 이를 수행하는 앱의 예로는 음성 메모 녹음 앱 또는 음성 인식 앱이 있습니다.
앱에서 일시적이고 독점적 인 오디오 포커스를 요청해야합니다. 시스템에서이 권한을 부여한 경우 시스템에서 생성 된 다른 소리가 녹음을 오염시키지 않는다는 것을 알면서 오디오 녹음을 시작할 수 있습니다. 이 녹음 기간 동안 다른 앱이 오디오 포커스를 요청하면 거부 될 것입니다. 사용자가 녹음을 마쳤 으면 시스템에서 소리를 정상적으로 재생할 수 있도록 오디오 포커스를 포기해야합니다.
개요
앱에서 오디오를 출력해야하는 경우 오디오 포커스를 요청해야하며 요청할 수있는 다양한 유형의 포커스가 있어야합니다.
포커스가 부여 된 후에 만 사운드가 재생되어야합니다. 그러나 오디오 포커스를 얻은 후에는 앱에서 오디오 재생을 완료해야 오디오 포커스를 유지할 수 있습니다.
다른 앱에서 오디오 포커스를 유지하기 위해 포커스를 요청할 수 있습니다. 이 경우 앱에서 재생을 일시 중지하거나 볼륨을 낮추어 (더킹) 사용자가 새로운 오디오 소스를 더 쉽게들을 수있게해야합니다.
Android O에서 앱이 요청할 때 오디오 포커스를 얻을 수없는 경우 시스템에서 앱을 사용할 수있게되면 (지연된 포커스) 앱에 제공 할 수 있습니다.
앱에서 오디오 포커스를 구현하는 방법에 대해 자세히 알아 보려면 이 연재 의 마지막 기사를 읽으십시오 .
Android O 이상에서는 AudioFocusRequest객체 를 만들어야 합니다 (a 사용 builder). 그리고이 객체에서 앱이 오디오 포커스를 획득하는 데 필요한 기간을 지정해야합니다. 다음 코드 스 니펫은 시스템에서 오디오 포커스를 영구적으로 획득 할 의사를 선언합니다.
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 }
Android N 및 이전 버전 AudioFocusRequest에서는 아래와 같이 객체를 사용하지 않고이 의도를 선언 할 수 있습니다. 여전히 구현해야합니다 AudioManager.OnAudioFocusChangeListener. 위의 스 니펫과 동일한 코드가 있습니다.
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 {
@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; } } }
다른 앱이 일시적인 오디오 포커스를 요청하고 재생이 일시 중지되는 대신 (일시 중지하는 대신) 사용자가 재생 일시 중지를 시작하면 앱이 다르게 작동해야합니다. 사용자가 재생 일시 중지를 시작하면 앱에서 오디오 포커스를 포기해야합니다. 그러나 일시적인 오디오 포커스 손실에 대한 응답으로 앱이 일시 중지 된 경우 오디오 포커스를 포기해서는 안됩니다. 이것을 설명하기위한 몇 가지 유스 케이스가 있습니다.
백그라운드에서 오디오를 재생하는 오디오 재생 앱이 있다고 가정 해 보겠습니다.
사용자가 재생을 누르면 앱에서 영구적 인 오디오 포커스를 요구합니다. 시스템에서 오디오 포커스를 부여 받았다고 가정 해 봅시다.
이제는 홈 버튼을 길게 누르면 Google 길잡이가 시작됩니다. Assistant는 일시적인 오디오 포커스를 요청합니다.
시스템이 지원이 부여되면, 당신의 OnAudioFocusChangeListener얻을 것이다 AUDIOFOCUS_LOSS_TRANSIENT이벤트를. Assistant에서는 오디오를 녹음해야하므로 여기에서 재생을 일시 중지합니다.
길잡이가 완료되면, 그것의 오디오 사용을 포기합니다, 당신의 응용 프로그램은 부여됩니다 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다음과 같이.
앱의 오디오 재생이 완료되면 전화로 오디오 포커스를 포기해야합니다 AudioManager.abandonAudioFocus(…). 이전 단계에서는 사용자가 재생을 일시 중지했을 때 오디오 포커스를 포기하는 앱의 상황을 들었지만 다른 앱이 일시적으로 중단했을 때 오디오 포커스를 유지하는 앱이있었습니다.
코드 샘플
앱에서 사용할 수있는 요점
이 GitHub 요지 에는 앱에서 사용할 수있는 오디오 포커스 코드를 다루는 3 개의 클래스 가 있습니다.
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 에서 찾을 수 있습니다 .]
구입할 TV 상자를 자주 묻는 순간부터 "나는 최고의 안드로이드 TV 상자는 무엇입니까?"라는 가이드를 썼습니다."라고 말합니다. 시간이 지났고 신제품이 출시되었습니다. 더 많은 기기를 테스트하고 더 많은 독자 의견을 얻었으므로 업데이트 할 시간입니다.
아직 모든 장치를 관리하는 장치가 없으며 모두가 서로 다른 요구 사항과 가격대를 갖고 있기 때문에 최상의 Android TV 상자는 한 사람에게만 제공 될 수 있습니다. 다른 사람에게 쓰레기가 될 수 있습니다.TV 박스를 구입하기 전에, TV 박스로 무엇을 할 계획인지 고려해야하며, 필요와 예산에 맞는 장치를 찾으십시오.먼저, 주목할 가치가있는 대안뿐만 아니라 눈에 띄는 3 개의 TV 박스 (특정 순서 없음)를 선택하기 전에 SoC / RAM 선택 옆에서 찾을 항목 목록을 제공 할 것입니다.
찾을 물건
이 목록은 기본적으로 작년과 동일합니다. 단 운영 체제에 대한 두 개의 섹션과 추가 기능을 추가했습니다.
운영체제- "안드로이드 TV 상자"가 "안드로이드" "TV 박스"를 의미했을 때가 있었지만 구글의 TV 박스 운영체제가 보편화되고 일부 회사는 안드로이드 / 리눅스 운영체제로 듀얼 OS 버전을 제공하기 시작했습니다 동시에 대부분 서버 용도로 사용됩니다.다음은 고려할 수있는 옵션입니다.
공식 Android TV OS- 희박한 실행기로 원래의 경험을 원하면 Hulu, Netflix와 같은 스트리밍 서비스에 액세스하려는 경우 이러한 장치를 선택하십시오.이 운영 체제에는 스트리밍에 필요한 모든 라이센스가 포함되어 있어야하며, 특히 대형 스크린 용으로 특별히 고안되었으며 IR 리모콘으로 잘 작동합니다.그러나 TV 용으로 특별히 고안된 앱 (예 : 사이드로드하지 않는 한 Chrome 브라우저 없음) 만 설치하면 시스템이 에어 마우스 또는 무선 키보드 / 터치 패드와 항상 잘 작동하지 않을 수 있습니다.
비공식 Android TV OS- 일부 라이선스가 누락 될 수 있다는 점을 제외하면 위와 동일하므로 일부 스트리밍 서비스가 제대로 작동하지 않거나 표준 해상도가 제한 될 수 있습니다.
안드로이드 OS- 중국에서 발견 할 수있는 모든 것을 말하는 것은 아니지만, 대형 스크린에 대한 사용자 정의가 가능한 스마트 폰 용 안드로이드 운영 체제를 실행하고 있습니다.이러한 기기는 Google Play 스토어에서 모든 앱을 설치할 수 있으므로 큰 유연성을 제공하며 대형 화면 용 런처가 제공됩니다.단점은 인터페이스 또는 일부 앱의 일부만 IR 리모콘과 함께 사용할 수 있으므로 기기를 잘 제어하려면 무선 마우스, 무선 키보드 또는 스마트 폰 앱을 사용해야합니다.또한 대부분의 상자에는 적절한 DRM 및 기타 라이센스가 없으므로 액세스 할 수있는 스트리밍 서비스 또는 적어도 재생 해상도를 제한 할 수 있습니다.
Android + Linux- 듀얼 부팅 시스템은 오래 동안 사용되어 왔으며 IMHO는별로 유용하지 않습니다. 그래서 여기서는 미디어 재생을 위해 Android와 동시에 두 개의 운영 체제가 실행되는 시스템과 NAS / 서버 기능.지금까지 OpenWrt 또는 Debian으로 장치를 보았습니다.
정기적 인 펌웨어 업데이트 내역- 회사에서 정기적으로 OTA (무선) 펌웨어 업데이트를 제공하는 경우 장치가 더 좋아지고 초과 근무를하게 될 것입니다.가장 저렴한 TV 박스는 보통 ship-and-forget 모델을 따르므로 일부 커뮤니티 회원이 맞춤 펌웨어를 제공하지 않는 한 개선을 기대할 수 없습니다.
지원 포럼- 최종 사용자에게 판매하는 평판 좋은 회사는 지원 포럼을 제공합니다.싸구려 박스의 경우Freaktab과 같은 커뮤니티를통하는경우를 제외하고는 지원을받지못합니다.
4K 및 HDR 지원- 4K 비디오 및 최신 HDR (High Dynamic Range 기능)을 지원할 장치를 구입하려면 HDMI 2.0a (3840 × 2160 또는 4096 × 2160 출력, 최대 60Hz)가있는 장치를 찾아야합니다 및 HDR.4K 비디오 코덱 (10 비트 HEVC / H.265, VP9, H.264)을 두 번 확인하고 비디오에 사용 된 프레임 속도를 디코딩 할 수 있는지 확인하십시오.후자는 일반적으로 H.265에는 문제가되지 않지만 일부 시스템에서는 30fps 또는 24fps 만 처리 할 수 있기 때문에 VP9 또는 H.264가 될 수 있습니다.
5.1 또는 7.1 HD 오디오 패스 스루 지원 -Dolby TrueHD, Dolby Atmos, DTS HD Master, DTS HD 고해상도 또는 DTS : X를 처리 할 수있는 앰프 또는 A / V 수신기를 소유하고있는 경우, 이 사이트 또는 다른 사용자에 대한 리뷰는 많은 기기가 지원 요청에도 불구하고 부족합니다.
자동 프레임 속도 전환- 모니터 화면 재생 빈도를 비디오 프레임 속도와 일치시켜 마이크로 스터 터 (micro stutter)라는 현상을 피할 수있는 기능으로, 일정한 간격으로 비디오를 부드럽게 만들지 못하게합니다. 특히 비디오가 패닝됩니다.24fps 비디오가 모니터에서 24Hz를 사용하여 재생 된 경우와 같이 제대로 구현되면 마이크로 셔터가 사라집니다.
HD 및 UHD 비디오 스트리밍을위한 DRM 지원- Netflix와 같은 비디오 스트리밍 서비스에 비용을 지불하는 경우 Widewine Level 1 DRM이 필요하지만 HD에서 비디오를 재생하기에 충분하지 않은 조건을 지원해야합니다 또는 UHD (4K) 해상도.대부분의 장치는적절한 DRM이없고 "Netflix 라이센스"를 얻지 못하기 때문에 SD 해상도의 비디오 만 스트리밍 할 수 있습니다.
열 디자인 및 저장 성능- 많은 안드로이드 TV 박스는 비슷한 사양을 가지고 있지만, IMHO의 두 가지 중요한 디자인 선택은 외관상으로 유사한 장치 간의 성능에 특히 영향을 미칩니다.일부 TV 상자는 시간이 지남에 따라 과열되어 몇 분 후에 성능이 저하되고 적절한 냉각 기능을 갖춘 TV 상자는 몇 시간 동안 동일한 성능을 보입니다.빠른 저장 장치를 사용하면 기기가 빠르게 부팅되고 앱이 빠르게로드되며 앱이 백그라운드에서 설치 또는 업데이트되는 동안 기기의 속도가 느려지지 않습니다.
추가 기능- 당신이 원하는 것은 스트리밍을 원한다면 일반적으로 신경 쓰지 않겠지 만, TV 박스를 더 원하면 디지털 TV 튜너 (DVB-T / T2 / C, DVB-S2, ATSC ..), 내부 SATA 베이, 다른 장치에서 비디오를 녹화 또는 방송하기위한 HDMI 입력 등이 있습니다.
MINIX NEO U9-H 미디어 허브
확대하려면 클릭하십시오.
기준 :
운영체제- 안드로이드 6.0.1 OS
정기적 인 펌웨어 업데이트 내역- MINIX는 일반적으로 약 1 년 정도 장치를 업데이트합니다.
지원 포럼-MINIX 포럼은 상당히 활동적이므로, MINIX 또는 사용자 커뮤니티로부터 적절한 지원을받을 수 있어야합니다.
4K 및 HDR 지원- 4K @ 60Hz의 HDMI 2.0a가 지원되며 4K 10 비트 H.265, VP9 및 H.264 비디오를 매우 잘 지원합니다.
5.1 또는 7.1 HD 오디오 패스 스루 지원 -Dolby TrueHD 및 DTS HD 오디오 패스 스루가 모두 작동합니다.
자동 프레임 속도 전환- OK (Kodi 17.x)
HD 및 UHD 비디오 스트리밍을위한 DRM 지원- Widewine Level 1 및 Microsoft PlayReady가 구현되었습니다.그러나 Netflix는 별도의 계약이 필요하기 때문에 최대 SD 해상도 또는 최대 HD (720p)까지만 재생할 수 있습니다.하지만 풀 HD는 물론 UHD도 재생할 수 없습니다.
작년에 추천 한MINIX NEO U1과 마찬가지로Netflix Full HD 또는 4K UHD 재생이 필요하지 않으며 사용자 지정 런처와 에어 마우스를 사용하면 행복합니다. MINIX NEO U9-H는 확실히 귀하의 목록에 있어야합니다. 고려해야 할 장치.MINIX NEO U9-H 리뷰를읽으십시오. 2017 년 3 월에 검토 한 이후 버그가 수정되었을 수도 있습니다.
가격 :아마존 미국,GearBest,GeekBuying및 기타 판매 업체의NEO A3 Lite 에어 마우스로 $ 149.90 이상.약 $ 139.90에 대해서만 상자를 (에어 마우스없이) 찾을 수 있습니다.
U5PVR 디럭스 셋톱 박스 및 NAS
확대하려면 클릭하십시오.
U5PVR Deluxe는 튜너 및 3.5 "SATA 드라이브와 같은 모든 추가 기능과 Android TV OS (비공식) 및 Debian 모두를 실행한다는 사실 때문에 상위 3 개 목록에 포함되었습니다.
기준 :
운영체제- 비공식 Android TV 5.1 OS 및 데비안이 동시에 실행됩니다.Android TV 7.1 베타도 제공됩니다.
지원 포럼-SmartSTB 포럼(다소 활발한 활동) 또는Google+(활발하지 않은 활동)에서 제공됩니다.이 장치는 MINIX 모델만큼 대중적이지 않으므로 관련 사용자가 적습니다.
4K 및 HDR 지원- Media Center 앱에서 4K 10 비트 H.265, VP9 및 H.264 비디오를 매우 잘 지원하면서 최대 4K @ 60Hz의 HDMI 2.0a가 지원됩니다 (단, Kodi 17.x 지원은 약간의 작업이 필요함). )
5.1 또는 7.1 HD 오디오 패스 스루 지원 -Media Center 앱에서 작동하는 Dolby TrueHD 및 DTS HD 오디오 패스 스루.
자동 프레임 속도 전환- OK (Media Center 앱)
HD 및 UHD 비디오 스트리밍을위한 DRM 지원- DRM 지원 없음
열 설계 및 보관 성능- 뛰어난 내부 보관 성능 및 냉각시 눈에 띄는 문제가 없음 (설계시분해참조)
추가 기능- 2.5 "또는 3.5"드라이브, 듀얼 DVB-T / T2 튜너 용 SATA 베이
DVB-T / T2가 지원되는 국가 (또는튜너 보드를 추가로구입하면 DVB-T / T2 / C, ATSC, DVB-S2)에 거주하고 Linux NAS 기능을 사용할 계획 인 경우, U5PVR Deluxe는 확실히 좋은 후보자로 보입니다.그러나 Netflix, Hulu 및 기타 프리미엄 서비스의 비디오 스트림을 주로보고 Kodi를 사용하려는 경우 사용자의 요구에 더 잘 맞는 다른 장치가 있어야합니다.
4K 지원- 최대 4K @ 60Hz의 HDMI 2.0a는 10 비트 H.265, VP9 및 H.264 비디오 재생 (60fps)을 지원합니다.
5.1 또는 7.1 HD 오디오 패스 스루 지원 -Dolby TrueHD 및 DTS HD 오디오 패스 스루 지원
자동 프레임 속도 전환 -적어도 Kodi와 Plex는 괜찮습니다.
HD 및 UHD 비디오 스트리밍을위한 DRM 지원- 공식적으로 지원되는 Netflix HD 및 4K, Amazon Video
열 설계 및 스토리지 성능-좋은스토리지 성능, 난 단지 과열에 고립 된 문제의 보고서를 읽고 (즉 아닌 설계 문제).
추가 기능- N / A
NVIDIA TV 상자는 모든 TV 박스 중에서 가장 강력한 GPU 기능을 갖추고있어 뛰어난 3D 게임 콘솔이기도합니다.회사는 올해 더 많은 국가에서이 모델을 출시했지만 가용성은 여전히 문제입니다.이것은 또한 기기가 공식적으로 출시되지 않은 국가에서 구매할 경우 배송비, 관세 및 기타 수수료 (예 : 배송료)를 고려하면 기기가 꽤 비쌀 수 있음을 의미합니다.Android TV OS를 실행하는 다른 기기와 마찬가지로 모든 앱을 Play 스토어에서 사용할 수있는 것은 아닙니다.
Xiaomi Mi Box US- Vudu +, Hulu, YouTube, Netflix와 같은 서비스에서 동영상을 스트리밍하고 게임을 즐기는 데 신경 쓰지 않고 다른 작업을 위해 매우 높은 성능을 제공하는 경우 공식적으로 Android TV 옵션이 좋습니다.
Mecool M8S PRO + -비공식 Android TV 7.1 펌웨어, 최대 1080p의 Netflix를 지원하는 2GB RAM / 16GB 저장 용량의 Amlogic S905X SoC 기반보조 40 달러 박스.[링크 된 게시물의 eMMC 플래시 버전에 대한주의 사항]
LibreELEC(Kodi Linux 배포판)과 호환되는다양한 저가의 Amlogic S905 / S905X TV 상자.이 상자의 재고 안드로이드 펌웨어는 그리 좋지 않을 수 있으므로 커뮤니티에서 지원하는 LibreELEC을 실행하는 것이 좋습니다.
이 가이드가 어떤 모델을 구매할 것인지 결정하는 데 도움이되기를 바랍니다.다른 모델이 상위 3 개 또는 대안 목록에 포함되어야한다고 생각한다면 자유롭게 의견을 말하십시오.