마이크로 소프트는 밀려 이제 한 윈도우 (10)에 대한 업데이 트를 , 내가있어 이후 MINIX NEO N42C-4 검토 인텔 펜티엄 N4200 "아폴로 호수"프로세서 기반 미니 PC를 바로 업데이트되기 전에 벤치 마크를 실행하는 일이, 그래서 실행하기로 결정 일부 벤치 마크는 보안 업데이트 전후에 큰 차이가 있는지 다시 확인했습니다.
먼저 "설치 업데이트 내역"에서 실제로 업데이트를 받았는지 확인해야하고 Windows 10 Pro는 1 월 5 일에 KB4056892 로 업데이트 되었으므로 지금부터 진행하겠습니다.
업데이트 전 벤치 마크
PCMark 10은 많은 사람들이 데스크톱 컴퓨터에서 사용할 전형적인 프로그램에 의존하기 때문에 내가 가장 좋아하는 벤치 마크 중 하나입니다.
오른쪽 점수는 낮지 만 실제로는 의미가 없으며 성능이 0.63 % 감소합니다. 이는 업데이트와 관련이 없습니다. 따라서 업데이트 전후의 차이는 없습니다.
확대하려면 클릭하십시오.
기본적으로 3DMark Sky Diver 1.0에 대한 이야기는 업데이트 전과 동일합니다. 3DMark 결과에 링크하십시오 .
전 (왼쪽)과 후 (오른쪽) - 확대
일반적으로 CrystalDiskMark와 같은 I / O 벤치 마크에는 훨씬 더 많은 변형이 있으므로 결과를 분석하기가 조금 더 어려워지며 두 스크린 샷이 나란히 있습니다. 순차적 읽기 / 쓰기 (Seq Q32T1 & Seq)에는 아무런 차이가 없다고 말할 수 있으며, 업데이트 후에도 약간 더 나은 숫자가 있습니다. 랜덤 I / O는 "4K 읽기"테스트를 제외하고는 업데이트 후 꽤 잘 보입니다. 나는 그것을 여러 번 반복했고, 업데이트 후에는 항상 14에서 17 MB / s를 얻었고 (23에서 37 % 더 느림), "4K 쓰기"는 항상 더 높았습니다. 대부분의 유스 케이스에는 문제가되지 않습니다.
이 단계에서 업데이트 후 5 % 차이를 보여주는 표를 그리기를 기대했지만, 아폴로 레이크 아키텍처 가 Meltdown과 Spectre의 영향 을 받았음에도 불구하고 업데이트 이후에 명확한 성능에 도달하지 않았기 때문에 그렇게하지 않을 것 입니다. 어쩌면 다른 데이터베이스 관련 테스트가 차이를 보일 수도 있고, 보안 픽스가 대부분 하이 엔드 프로세서의 성능에 영향을 줄 수도 있습니다.
이번 주에 공개 된 하나 이상의 보안 취약점 은 거의 모든 최신 스마트 폰, 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 관련 공격에만 취약합니다.
아이폰 제조업체는 데이터 계획을 쉽게 수행 할 수 있도록 고안된 압축 기술을 보증하는 최첨단 기술 업체 중 마지막 기업으로 합류하게 되었습니다.
애플은 오픈 미디어 얼라이언스에 조용히 가입했다.
클레어 라일리 / 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의 의견을 추가합니다.
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 에서 찾을 수 있습니다 .]