return mRxAudioPlayer.play( PlayConfig.res(getApplicationContext(), R.raw.audio_record_ready) .build()); }) .doOnComplete(() -> {
@OnClick(R.id.mBtnPlay) public void startPlay() { mTvLog.setText(""); if (!mAudioFiles.isEmpty()) { File audioFile = mAudioFiles.poll(); compositeDisposable.add(mRxAudioPlayer.play( PlayConfig.file(audioFile) .streamType(AudioManager.STREAM_VOICE_CALL) .build()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(Functions.emptyConsumer(), Throwable::printStackTrace, this::startPlay)); } }
public static Builder url(String url) { Builder builder = new Builder(); builder.mUrl = url; builder.mType = TYPE_URL; return builder; }
public static Builder res(Context context, @RawRes int audioResource) { Builder builder = new Builder(); builder.mContext = context; builder.mAudioResource = audioResource; builder.mType = TYPE_RES; return builder; }
public static Builder file(File file) { Builder builder = new Builder(); builder.mAudioFile = file; builder.mType = TYPE_FILE; return builder; }
public static Builder uri(Context context, Uri uri) { Builder builder = new Builder(); builder.mContext = context; builder.mUri = uri; builder.mType = TYPE_URI; return builder; }