2017-12-23 23 views
-1

이 응용 프로그램은 Android 휴대 전화에서 작동하지만 Android Wear 시계에서 실행되는 경우 기록 버튼을 누르면 충돌이 발생합니다. 누군가 오디오 녹음 앱의 예제 코드를 게시 할 수 있습니까?android wear에 오디오를 녹음하는 방법은 무엇입니까? 시계가 아닌 휴대 전화에서 작동

여기 내 진행 상황을 보여주는 현재 코드가 있습니다.

자바 활동 :

import android.app.*; 
import android.os.*; 
import android.widget.*; 
import android.app.*; 
import android.os.*; 
import android.content.*; 
import android.Manifest; 
import android.content.pm.PackageManager; 
import android.util.*; 
import android.view.*; 
import java.io.*; 
import android.media.*; 
import android.provider.*; 


public class WearableActivity extends Activity { 
    private Button play; 
    private Button record; 
    private Button stop; 
    private MediaRecorder myAudioRecorder; 
    private String outputFile; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_wearable); 

     play = (Button) findViewById(R.id.play); 
     stop = (Button) findViewById(R.id.stop); 
     record = (Button) findViewById(R.id.record); 
     //stop.setEnabled(false); 
     // play.setEnabled(false); 


     outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/recording.3gp"; 
     myAudioRecorder = new MediaRecorder(); 
     myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
     myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
     myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB); 
     myAudioRecorder.setOutputFile(outputFile); 



     record.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       try { 
        myAudioRecorder.prepare(); 
        myAudioRecorder.start(); 
       } catch (IllegalStateException ise) { 
        // make somthing 
       } catch (IOException ioe) { 
        // make somthing 
       } 

       record.setEnabled(false); 
       stop.setEnabled(true); 

       Toast.makeText(getApplicationContext(), "Recording started", Toast.LENGTH_LONG).show(); 
      } 
     }); 

     stop.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       myAudioRecorder.stop(); 
       myAudioRecorder.release(); 
       myAudioRecorder = null; 
       record.setEnabled(true); 
       stop.setEnabled(false); 
       play.setEnabled(true); 
       Toast.makeText(getApplicationContext(), "Audio Recorder successfully", Toast.LENGTH_LONG).show(); 

      } 
     }); 
     play.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       MediaPlayer mediaPlayer = new MediaPlayer(); 

       try { 
        mediaPlayer.setDataSource(outputFile); 
        mediaPlayer.prepare(); 
        mediaPlayer.start(); 

        Toast.makeText(getApplicationContext(), "Playing Audio", Toast.LENGTH_LONG).show(); 
       } catch (Exception e) { 
        // make something 
       } 
      } 
     }); 
    } 
} 

wearable.xml :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:orientation="vertical"> 
    <Button 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:text="record" 
     android:id="@+id/record" /> 
    <Button 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:text="stop" 
     android:id="@+id/stop" /> 
    <Button 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:text="play1" 
     android:id="@+id/play" /> 
</LinearLayout> 

Manifest.xml : 그것은하지 않기 때문에 (난 단지 다음 줄을 추가

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.mycompany.Zer0"> 
    <uses-permission 
     android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission 
     android:name="android.permission.RECORD_AUDIO" /> 
    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.DeviceDefault.Light"> 
     <activity 
      android:name=".WearableActivity" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action 
        android:name="android.intent.action.MAIN" /> 
       <category 
        android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 

나없이 편집을 제출하십시오 ...)

완전히 다른 접근 방식을 시도해야합니까, 아니면 전화 앱이 시계에서 작동하는 방식으로 변형 될 수 있습니까?

+0

을 봐 주셔서 감사합니다, 두 옵션은 나를 위해 좋아요 있습니다 https://github.com/googlesamples/android-WearSpeakerSample

이 는 내장 된 APK입니다. – user9134447

답변

0

시도해보십시오. 마모 마이크로폰을 사용하여 오디오를 녹음 한 다음 재생합니다. https://drive.google.com/open?id=1z6lwVoWh89gbGz43c_6PNPVS4Os6s4nu

나는 구글도 넣어 가지고 시계 모드와 함께 플레이 : https://play.google.com/store/apps/details?id=com.jorc.android.wearable.watchface&hl=en

+0

Android Studio에서 시험했지만 작동하지 않습니다. – user9134447

+0

시계 화면에 원 버튼이 포함되어있을 때 Google Play에서 몇 시간 내에 위를 보거나 간단히 대답에서 공유 한 APK를 사용합니다. – Amir

+0

이봐, 정말 고마워. 너무 근사해. 마지막으로 작동합니다. 제발 당신의 애플 리케이션을 즉시 변경하지 마시고, 제가 당신처럼 끝내기 위해 좀 더 시간을 갖도록하겠습니다. Thanksssssss a lotttttt :) niceeeeeeeeeeeeeeeeeeeeeeee – user9134447