THETA에서 일본 대표 응원해주세요![THETA 플러그인 개발] #thetappluggin

리광의@kushimoto.
갑작스럽지만RICOH THETA V은 안드로이드 기반의 OS로 앱을 설치하면 기능을 확장할 수 있고THETA 근처에서 앱을 플러그인이라고 부른다.
THETA 플러그인을 모르는 사람은 보십시오여기..
관심 있는 분들은 Twitter 및 참가THETA 플러그인 개발 커뮤니티(Slack)
이 기사에서 THETA로 목소리를 내는 방법을 소개했고, 마지막으로 일본 대표팀을 함께 응원하고 싶었다.

명THETA


API


THETA 호스트에서 사용하는 사운드를 재생하기 위한 API를 제공합니다.
자유롭게 좋아하는 시간에'흡음'을 울리는 셔터 소리와'피피피피'가 강제로 끝나는 소리 등으로 인해 THETA 애호가들에게 난리가 났다.
API로서 다음과 같은 내용을 정의하여 방송 내부 텐트를 통해 재생할 수 있다.
Controlling Speakers | THETA Plug-in API Reference Broadcast Intent
천막
설명“com.theta360.plugin.ACTION_AUDIO_SHUTTER”셔터 소리“com.theta360.plugin.ACTION_AUDIO_SH_OPEN”장시간 노출 촬영 시작 소리“com.theta360.plugin.ACTION_AUDIO_SH_CLOSE”장시간 노출 촬영 끝 소리“com.theta360.plugin.ACTION_AUDIO_MOVSTART”영상 촬영 시작 소리“com.theta360.plugin.ACTION_AUDIO_MOVSTOP”영상 촬영 종료음“com.theta360.plugin.ACTION_AUDIO_SELF”자동 타이머 사운드“com.theta360.plugin.ACTION_AUDIO_WARNING”경고음

SDK


플러그인 개발을 돕기 위해 SDK를 준비했다.
RICOH THETA Plug-in SDK
사운드 외에도 버튼 이벤트의 LED 가져오기 및 제어 기능도 포함됩니다.
SDK 사용 방법은 다음 기사를 참조하십시오.
  • [THETA 플러그인 개발] THETA에서 RICOH THETA Plug-in SDK를 시작하는 방법

  • [THETA 플러그인 개발] THETA 플러그인을 통해 Hello World. (파인애플 가방 글)
  • 위의 사운드 시스템 API 대응 방법은 SDKPluginActivity 클래스에 의해 정의됩니다.
  • notificationAudioShutter()
  • notificationAudioOpen()
  • notificationAudioClose()
  • notificationAudioMovStart()
  • notificationAudioMovStop()
  • notificationAudioSelf()
  • notificationAudioWarning()
  • 방법을 부르면 소리가 난다.

    THETA에서 일본 대표팀을 응원합니다.


    본론입니다.
    축구 월드컵 일본 대표님, 아쉽네요.
    아쉽게도 이 기사가 대표전을 따라잡지 못했지만, 일본 대표팀은 항상 어디서 알아야 할 것 같아 THETA를 활용해 일본 대표팀을 응원하는 방법을 소개하고 싶었다.
    쓰러뜨리다

    일본 자고이래 응원하면...


    일본인이라면 응원하면 삼삼칠박자죠.모르는 사람도 없고 허가증에도 문제가 없으니 그것만 생각할 수밖에 없다.
    그래서 이번에는 삼칠박자를 개발한 THETA!
    쓰러뜨리다

    부호화


    SDK에 포함된 샘플 코드MainActivity.java가 수정되었습니다.
    샘플 코드의 상세한 설명은 부지라 메론 메론을 보십시오.
    package com.theta360.pluginapplication;
    
    import android.os.Bundle;
    import android.view.KeyEvent;
    import com.theta360.pluginapplication.task.TakePictureTask;
    import com.theta360.pluginapplication.task.TakePictureTask.Callback;
    import com.theta360.pluginlibrary.activity.PluginActivity;
    import com.theta360.pluginlibrary.callback.KeyCallback;
    import com.theta360.pluginlibrary.receiver.KeyReceiver;
    import com.theta360.pluginlibrary.values.LedColor;
    import com.theta360.pluginlibrary.values.LedTarget;
    
    public class MainActivity extends PluginActivity {
        private static final int INTERVAL = 350;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // Set a callback when a button operation event is acquired.
            setKeyCallback(new KeyCallback() {
                // ぴっ
                private void pi() throws InterruptedException {
                    notificationLedShow(LedTarget.LED3);
                    notificationAudioMovStart();
                    Thread.sleep(INTERVAL);
                    notificationLedHide(LedTarget.LED3);
                }
    
                // ぴー
                private void pii() throws InterruptedException {
                    notificationLedShow(LedTarget.LED4);
                    notificationAudioShutter();
                    Thread.sleep(INTERVAL);
                    notificationLedHide(LedTarget.LED4);
                }
    
                @Override
                public void onKeyDown(int keyCode, KeyEvent event) {
                    if (keyCode == KeyReceiver.KEYCODE_CAMERA) {
    
                        try {
                            // 三
                            pi();
                            pi();
                            pi();
    
                            // 休符
                            Thread.sleep(INTERVAL);
    
                            // 三
                            pi();
                            pi();
                            pi();
    
                            // 休符
                            Thread.sleep(INTERVAL);
    
                            // 七
                            pi();
                            pi();
                            pi();
                            pi();
                            pi();
                            pi();
                            pii();
    
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
    
                @Override
                public void onKeyUp(int keyCode, KeyEvent event) {
                }
    
                @Override
                public void onKeyLongPress(int keyCode, KeyEvent event) {
                }
            });
        }
    }
    
    간단하게 설명해 드릴게요.
                @Override
                public void onKeyDown(int keyCode, KeyEvent event) {
                    if (keyCode == KeyReceiver.KEYCODE_CAMERA) {
                        try {
                            // 三
                            pi();
                            pi();
                            pi();
    
                            // 休符
                            Thread.sleep(INTERVAL);
    
                            // 三
                            pi();
                            pi();
                            pi();
    
                            // 休符
                            Thread.sleep(INTERVAL);
    
                            // 七
                            pi();
                            pi();
                            pi();
                            pi();
                            pi();
                            pi();
                            pii();
    
                            // 休符
                            Thread.sleep(INTERVAL);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
    
    버튼onKeyDown()을 누르고 이번에 셔터 버튼KEYCODE_CAMERA을 누르면 삼칠박자를 친다.
    대담하게 메인 라인을 닫지만 샘플 코드로 우선적으로 읽습니다.
                // ぴっ
                private void pi() throws InterruptedException {
                    notificationLedShow(LedTarget.LED3);
                    notificationAudioMovStart();
                    Thread.sleep(INTERVAL);
                    notificationLedHide(LedTarget.LED3);
                }
    
                // ぴー
                private void pii() throws InterruptedException {
                    notificationLedShow(LedTarget.LED4);
                    notificationAudioShutter();
                    Thread.sleep(INTERVAL);
                    notificationLedHide(LedTarget.LED4);
                }
    
    실제로 소리를 내는 것은 이런 방법들이다.
    소리만 울리면 차가워지고 LED도 빛난다.LED의 발광 방법도 부지라에서 메론을 설명한 적이 있다.

    THETA에서 삼칠박자를 치다


    이동해보면 이런 느낌(↓는 유튜브 링크).
    파인애플 가방 기사.
    할 말 없어요.

    총결산


    이 기사에서 우리는 THETA에서 소리를 재생하는 방법을 소개하고 그것을 이용하여 삼삼칠박자의 THETA를 만들어 보았다.
    아쉽게파인애플 가방 기사. 졌지만 이 기사가 대표전을 따라잡았다면... 여러분들이 THETA에서 응원해주신다면... 아마...

    좋은 웹페이지 즐겨찾기