2

Я пытаюсь установить библиотеку waveInApp http://www.materialup.com/posts/waveinapp Я объявил все необходимое. Приложение работает, но фоновая волна не работает. Я не могу установить волновую функцию как новичок в развитии Android. Я могу установить все основные вещи, включая медиаплеер. Здесь я не в состоянии установить речевой recognization обработчик Вот что я сделалКак установить библиотеку в студии android

import android.content.Context; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.ImageButton; 
import android.widget.Toast; 
import com.cleveroad.audiovisualization.AudioVisualization; 
import com.cleveroad.audiovisualization.DbmHandler; 
import com.cleveroad.audiovisualization.SpeechRecognizerDbmHandler; 
import com.cleveroad.audiovisualization.VisualizerDbmHandler; 

public class MainActivity extends AppCompatActivity { 
private AudioVisualization audioVisualization; 
private Context context; 
private ImageButton button1,button2; 
private MediaPlayer mediaPlayer; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    audioVisualization = (AudioVisualization)findViewById(R.id.visualizer_view); 
    button1=(ImageButton)findViewById(R.id.imageButton); 
    button2=(ImageButton)findViewById(R.id.imageButton2); 
    mediaPlayer =MediaPlayer.create(this,R.raw.song); 

    button2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(),"playing",Toast.LENGTH_SHORT).show(); 
      mediaPlayer.start(); 
     } 
    }); 
button1.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
    Toast.makeText(getApplicationContext(),"pause",Toast.LENGTH_SHORT).show(); 
    mediaPlayer.pause(); 
    VisualizerDbmHandler vizualizerHandler = DbmHandler.Factory.newVisualizerHandler(getContext(), 0); 
    audioVisualization.linkTo(vizualizerHandler); 
    // set speech recognizer handler 
    SpeechRecognizerDbmHandler speechRecHandler = DbmHandler.Factory.newSpeechRecognizerHandler(context); 
    speechRecHandler.innerRecognitionListener(...); 
    audioVisualization.linkTo(speechRecHandler); 
} 
}); 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    audioVisualization.onResume(); 
} 

@Override 
public void onPause() { 
    audioVisualization.onPause(); 
    super.onPause(); 
} 
} 

Так как установить выше handeler. Я не могу настроить просмотр аудиовидеосвязи на аудиовыход. Как установить следующий метод с медиаплеером

// set speech recognizer handler 
SpeechRecognizerDbmHandler speechRecHandler = DbmHandler.Factory.newSpeechRecognizerHandler(context); 
speechRecHandler.innerRecognitionListener(...); 
audioVisualization.linkTo(speechRecHandler); 

// set audio visualization handler. This will REPLACE previously set speech recognizer handler 
VisualizerDbmHandler vizualizerHandler = DbmHandler.Factory.newVisualizerHandler(getContext(), 0); 
audioVisualization.linkTo(vizualizerHandler); 

Кроме этого все working.any намек или советы будут полезны. Я пытался искать

import android.content.Intent; 
import android.os.Bundle; 
import android.speech.RecognitionListener; 
import android.speech.RecognizerIntent; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 

import com.cleveroad.audiovisualization.AudioVisualization; 
import com.cleveroad.audiovisualization.DbmHandler; 
import com.cleveroad.audiovisualization.SpeechRecognizerDbmHandler; 


public class SpeechRecognitionFragment extends Fragment { 

public static SpeechRecognitionFragment newInstance() { 
    return new SpeechRecognitionFragment(); 
} 

private AudioVisualization audioVisualization; 
private Button btnRecognize; 
private SpeechRecognizerDbmHandler handler; 
private boolean recognizing; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_gles, container, false); 
    audioVisualization = (AudioVisualization) view.findViewById(R.id.visualizer_view); 
    btnRecognize = (Button) view.findViewById(R.id.btn_recognize); 
    return view; 
} 

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    btnRecognize.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (recognizing) { 
       handler.stopListening(); 
      } else { 
       Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
       intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
       intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getContext().getPackageName()); 
       handler.startListening(intent); 
      } 
      btnRecognize.setEnabled(false); 
     } 
    }); 
    handler = DbmHandler.Factory.newSpeechRecognizerHandler(getContext()); 
    handler.innerRecognitionListener(new SimpleRecognitionListener() { 

     @Override 
     public void onReadyForSpeech(Bundle params) { 
      super.onReadyForSpeech(params); 
      onStartRecognizing(); 
     } 

     @Override 
     public void onResults(Bundle results) { 
      super.onResults(results); 
      onStopRecognizing(); 
     } 

     @Override 
     public void onError(int error) { 
      super.onError(error); 
      onStopRecognizing(); 

     } 
    }); 
    audioVisualization.linkTo(handler); 
} 

private void onStopRecognizing() { 
    recognizing = false; 
    btnRecognize.setText(R.string.start_recognition); 
    btnRecognize.setEnabled(true); 
} 

private void onStartRecognizing() { 
    btnRecognize.setText(R.string.stop_recognition); 
    btnRecognize.setEnabled(true); 
    recognizing = true; 
} 

@Override 
public void onDestroyView() { 
    audioVisualization.release(); 
    super.onDestroyView(); 
} 

private static class SimpleRecognitionListener implements RecognitionListener { 

    @Override 
    public void onReadyForSpeech(Bundle params) { 
    } 

    @Override 
    public void onBeginningOfSpeech() { 
    } 

    @Override 
    public void onRmsChanged(float rmsdB) { 
    } 

    @Override 
    public void onBufferReceived(byte[] buffer) { 
    } 

    @Override 
    public void onEndOfSpeech() { 
    } 

    @Override 
    public void onError(int error) { 
    } 

    @Override 
    public void onResults(Bundle results) { 
    } 

    @Override 
    public void onPartialResults(Bundle partialResults) { 
    } 

    @Override 
    public void onEvent(int eventType, Bundle params) { 
    } 
} 
} 

из https://github.com/Cleveroad/WaveInApp/blob/master/app/src/main/java/com/cleveroad/example/SpeechRecognitionFragment.java Так может кто-нибудь сказать мне, почему фрагмент используется и как я могу установить это в моей основной деятельности?

+0

спасибо за этот вопрос .. я нашел что-то новое .. я определенно реализую это .. –

ответ

0

Заменить

audioVisualization = (AudioVisualization) glAudioVisualizationView; 

С

audioVisualization = (AudioVisualization)findViewById(R.id.glAudioVisualizationView); 

glAudioVisualizationView должен быть идентификатор AudioVisualization в файле макета

1
I know i am late to post this answer...but for future use try this 
check my code you will find your answer 
first of all in the liberay you have to make some changes in your xml. 


<com.cleveroad.audiovisualization.GLAudioVisualizationView 
    android:id="@+id/visualizer_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:av_bubblesSize= "@dimen/bubble_size" 
    app:av_bubblesRandomizeSizes= "true" 
    app:av_wavesHeight= "@dimen/wave_height" 
    app:av_wavesFooterHeight="@dimen/footer_height" 
    app:av_wavesCount="7" 
    app:av_layersCount="4" /> 

затем

private VisualizerDbmHandler handler; 
    MediaPlayer mp ; 
    private AudioVisualization audioVisualization; 

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View ve = inflater.inflate(R.layout.cat, container, false); 
    ibCapture = (ImageButton) ve.findViewById(R.id.ibCapture); 
    audioVisualization = (AudioVisualization)ve.findViewById(R.id.visualizer_view); 
    hell(); 
    return ve; 
} 



    ibCapture.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      if (bool) { 
       bool = false; 
       mp = MediaPlayer.create(getContext(), R.raw.blackcat); 
       mp.setLooping(true); 
       handler = VisualizerDbmHandler.Factory.newVisualizerHandler(getContext(),mp); 
       audioVisualization.linkTo(handler); 
       mp.start(); 

      ((home)getActivity()).vis(); 
      } else { 
       bool = true; 
       ((home)getActivity()).visgone(); 
       stopPlaying(); 
      } 
     } 
    }); 
0

определяют

private AudioVisualization audioVisualization; 

инициализировать

audioVisualization = (AudioVisualization) view.findViewById(R.id.visualizer_view); 

для использования речи ниже кода

SpeechRecognizerDbmHandler speechRecHandler = DbmHandler.Factory.newSpeechRecognizerHandler(getContext()); 
       speechRecHandler.innerRecognitionListener(); 
       audioVisualization.linkTo(speechRecHandler); 

       Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
       intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
       intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getContext().getPackageName()); 
       speechRecHandler.startListening(intent); 

для средств массовой информации на вашем устройстве используйте код ниже, SANDEEP Singh Answer

MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.blackcat); 
       mp.setLooping(true); 
       handler = VisualizerDbmHandler.Factory.newVisualizerHandler(getContext(),mp); 
       audioVisualization.linkTo(handler); 
       mp.start();