Commit ce264934 authored by linfeng's avatar linfeng

短视频音乐

parent 3f6bb3e4
package com.xxfc.discovery; package com.xxfc.discovery;
import android.Manifest;
import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
...@@ -21,6 +26,7 @@ import com.ruiwenliu.wrapper.adapter.TabAdapter; ...@@ -21,6 +26,7 @@ import com.ruiwenliu.wrapper.adapter.TabAdapter;
import com.ruiwenliu.wrapper.base.BaseBean; import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseFragment; import com.ruiwenliu.wrapper.base.BaseFragment;
import com.ruiwenliu.wrapper.util.ViewHolder; import com.ruiwenliu.wrapper.util.ViewHolder;
import com.ruiwenliu.wrapper.util.permission.RxPermission;
import com.ruiwenliu.wrapper.weight.horizontal.GallerySnapHelper; import com.ruiwenliu.wrapper.weight.horizontal.GallerySnapHelper;
import com.ruiwenliu.wrapper.weight.horizontal.SpaceItemDecoration; import com.ruiwenliu.wrapper.weight.horizontal.SpaceItemDecoration;
import com.xxfc.discovery.adapter.DiscoveryMenuAdapter; import com.xxfc.discovery.adapter.DiscoveryMenuAdapter;
...@@ -32,6 +38,7 @@ import com.xxfc.discovery.fragment.ShortVideoFragment; ...@@ -32,6 +38,7 @@ import com.xxfc.discovery.fragment.ShortVideoFragment;
import com.xxfc.discovery.other.ShortVideoActivity; import com.xxfc.discovery.other.ShortVideoActivity;
import com.xxfc.discovery.popupwindow.AddDiscoveryContentPw; import com.xxfc.discovery.popupwindow.AddDiscoveryContentPw;
import com.xxfc.discovery.presenter.DiscoveryPresenter; import com.xxfc.discovery.presenter.DiscoveryPresenter;
import com.xxrv.video.activity.RecordxActivity;
import com.yuyife.okgo.OkGoUtil; import com.yuyife.okgo.OkGoUtil;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -40,7 +47,9 @@ import java.util.List; ...@@ -40,7 +47,9 @@ import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import butterknife.Unbinder; import butterknife.Unbinder;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import pub.devrel.easypermissions.AppSettingsDialog;
/** /**
* 发现模块 * 发现模块
...@@ -248,10 +257,9 @@ public class DiscoveryFragment extends BaseFragment<DiscoveryPresenter> { ...@@ -248,10 +257,9 @@ public class DiscoveryFragment extends BaseFragment<DiscoveryPresenter> {
dismiss(); dismiss();
} else if (id == R.id.tv_short_video) { } else if (id == R.id.tv_short_video) {
//短视频 verifyAudioPermissions(_mActivity);
ARouter.getInstance() processPicker();
.build(Constance.ACTIVITY_URL_RECORDXACTIVITY)
.navigation();
dismiss(); dismiss();
} else if (id == R.id.tv_ask_questions) { } else if (id == R.id.tv_ask_questions) {
//去提问 //去提问
...@@ -284,4 +292,55 @@ public class DiscoveryFragment extends BaseFragment<DiscoveryPresenter> { ...@@ -284,4 +292,55 @@ public class DiscoveryFragment extends BaseFragment<DiscoveryPresenter> {
} }
}); });
} }
//申请录音权限
private static final int GET_RECODE_AUDIO = 1;
private static String[] PERMISSION_AUDIO = {
Manifest.permission.RECORD_AUDIO};
/*
* 申请录音权限*/
public static void verifyAudioPermissions(Activity activity) {
int permission = ActivityCompat.checkSelfPermission(activity,
Manifest.permission.RECORD_AUDIO);
if (permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, PERMISSION_AUDIO,
GET_RECODE_AUDIO);
}
}
/**
* 打开相机和相册
*
* @param
*/
private void processPicker() {
/**
* 6.0以上手机做权限处理
*/
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
new RxPermission(_mActivity).request(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA).subscribe(new Consumer<Boolean>() {
@Override
public void accept(Boolean aBoolean) throws Exception {
if (aBoolean == true) {
//短视频
ARouter.getInstance()
.build(Constance.ACTIVITY_URL_RECORDXACTIVITY)
.navigation();
} else {
new AppSettingsDialog.Builder(DiscoveryFragment.this).
setTitle("需要获取相机权限、存储权限")
.setRationale("如果没有此权限,此应用程序可能无法正常工作,是否打开设置修改该应用权限")
.build().show();
}
}
});
} else {
}
}
} }
...@@ -111,7 +111,7 @@ public class RecordxActivity extends BaseStatusActivity<VideoPresenter> { ...@@ -111,7 +111,7 @@ public class RecordxActivity extends BaseStatusActivity<VideoPresenter> {
private String mCurrBgmPath; private String mCurrBgmPath;
private String mCurrBgmName; private String mCurrBgmName;
private String mCurrPath; private String mCurrPath;
private SelectMusicDialog mSelectDialog; // private SelectMusicDialog mSelectDialog;
private FilterPreviewDialog mDialog; private FilterPreviewDialog mDialog;
...@@ -164,8 +164,6 @@ public class RecordxActivity extends BaseStatusActivity<VideoPresenter> { ...@@ -164,8 +164,6 @@ public class RecordxActivity extends BaseStatusActivity<VideoPresenter> {
@Override @Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
processPicker();
verifyAudioPermissions(mActivity);
showTitle(false); showTitle(false);
xbar.setTotalTime(25); xbar.setTotalTime(25);
...@@ -183,12 +181,12 @@ public class RecordxActivity extends BaseStatusActivity<VideoPresenter> { ...@@ -183,12 +181,12 @@ public class RecordxActivity extends BaseStatusActivity<VideoPresenter> {
} }
}); });
mSelectDialog = new SelectMusicDialog(this, info -> { /* mSelectDialog = new SelectMusicDialog(this, info -> {
mCurrBgmPath = info.path; mCurrBgmPath = info.path;
mCurrBgmName = info.getName(); mCurrBgmName = info.getName();
tvBgName.setText(info.getName() + " " + info.getName() + " " + info.getName()); tvBgName.setText(info.getName() + " " + info.getName() + " " + info.getName());
tvBgName.setTextColor(getResources().getColor(R.color.white)); tvBgName.setTextColor(getResources().getColor(R.color.white));
}); });*/
broadcast(); broadcast();
...@@ -197,10 +195,6 @@ public class RecordxActivity extends BaseStatusActivity<VideoPresenter> { ...@@ -197,10 +195,6 @@ public class RecordxActivity extends BaseStatusActivity<VideoPresenter> {
} }
@Override @Override
public void onShowResult(int requestType, BaseBean result) { public void onShowResult(int requestType, BaseBean result) {
switch (requestType) { switch (requestType) {
...@@ -247,58 +241,12 @@ public class RecordxActivity extends BaseStatusActivity<VideoPresenter> { ...@@ -247,58 +241,12 @@ public class RecordxActivity extends BaseStatusActivity<VideoPresenter> {
} }
/**
* 打开相机和相册
*
* @param
*/
private void processPicker() {
/**
* 6.0以上手机做权限处理
*/
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
new RxPermission(mActivity).request(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA).subscribe(new Consumer<Boolean>() {
@Override
public void accept(Boolean aBoolean) throws Exception {
if (aBoolean == true) {
} else {
new AppSettingsDialog.Builder(RecordxActivity.this).
setTitle("需要获取相机权限、存储权限")
.setRationale("如果没有此权限,此应用程序可能无法正常工作,是否打开设置修改该应用权限")
.build().show();
}
}
});
} else {
}
}
//申请录音权限
private static final int GET_RECODE_AUDIO = 1;
private static String[] PERMISSION_AUDIO = {
Manifest.permission.RECORD_AUDIO};
/*
* 申请录音权限*/
public static void verifyAudioPermissions(Activity activity) {
int permission = ActivityCompat.checkSelfPermission(activity,
Manifest.permission.RECORD_AUDIO);
if (permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, PERMISSION_AUDIO,
GET_RECODE_AUDIO);
}
}
@OnClick({R2.id.ll_select_music, R2.id.ll_back, R2.id.ll_swith, R2.id.ll_filter, R2.id.iv_comp, R2.id.iv_local, R2.id.iv_del, R2.id.btn_rec, R2.id.progress_ing}) @OnClick({R2.id.ll_select_music, R2.id.ll_back, R2.id.ll_swith, R2.id.ll_filter, R2.id.iv_comp, R2.id.iv_local, R2.id.iv_del, R2.id.btn_rec, R2.id.progress_ing})
public void onViewClicked(View view) { public void onViewClicked(View view) {
int id = view.getId(); int id = view.getId();
if (id == R.id.ll_select_music) { if (id == R.id.ll_select_music) {
// 退出录制 startActivity(SelectMusicActivity.getIntent(mActivity));
mSelectDialog.show(); // mSelectDialog.show();
} else if (id == R.id.ll_back) { } else if (id == R.id.ll_back) {
// 退出录制 // 退出录制
......
...@@ -25,6 +25,7 @@ import com.ruiwenliu.wrapper.base.BaseStatusActivity; ...@@ -25,6 +25,7 @@ import com.ruiwenliu.wrapper.base.BaseStatusActivity;
import com.ruiwenliu.wrapper.util.glide.GlideApp; import com.ruiwenliu.wrapper.util.glide.GlideApp;
import com.ruiwenliu.wrapper.weight.TitleView; import com.ruiwenliu.wrapper.weight.TitleView;
import com.xxrv.video.R; import com.xxrv.video.R;
import com.xxrv.video.R2;
import com.xxrv.video.api.VideoApi; import com.xxrv.video.api.VideoApi;
import com.xxrv.video.audio_x.VoiceManager; import com.xxrv.video.audio_x.VoiceManager;
import com.xxrv.video.base.BaseRecAdapter; import com.xxrv.video.base.BaseRecAdapter;
...@@ -47,21 +48,31 @@ import java.util.Map; ...@@ -47,21 +48,31 @@ import java.util.Map;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* 选择音乐
*/
public class SelectMusicActivity extends BaseStatusActivity<VideoPresenter> implements View.OnClickListener { public class SelectMusicActivity extends BaseStatusActivity<VideoPresenter> implements View.OnClickListener {
@BindView(R2.id.search_edit)
EditText mEditText;
@BindView(R2.id.tv_null_tip)
TextView hint;
@BindView(R2.id.rv_comm)
RecyclerView mListView;
LinearLayoutManager mLayoutManager; LinearLayoutManager mLayoutManager;
private Context mContext; private Context mContext;
private SelectMusicDialog.OnMusicItemClick mListener; private SelectMusicDialog.OnMusicItemClick mListener;
private List<MusicInfo> mdatas; private List<MusicInfo> mdatas;
private List<MusicInfo> searchDatas; private List<MusicInfo> searchDatas;
private RecyclerView mListView;
private CommAvatarAdapter mAdapter; private CommAvatarAdapter mAdapter;
private TextView hint;
private int mPagerIndex; private int mPagerIndex;
private boolean isLoad; private boolean isLoad;
private int mCurrPlay = -1; // 当前选择的索引 private int mCurrPlay = -1; // 当前选择的索引
private MusicInfo mCurrMusic; private MusicInfo mCurrMusic;
private EditText mEditText;
private boolean more = true; // 是否可加载更多 private boolean more = true; // 是否可加载更多
private Timer SEARCH_TIMER; private Timer SEARCH_TIMER;
private SearchTimerTask mSearchTask; private SearchTimerTask mSearchTask;
...@@ -91,6 +102,9 @@ public class SelectMusicActivity extends BaseStatusActivity<VideoPresenter> impl ...@@ -91,6 +102,9 @@ public class SelectMusicActivity extends BaseStatusActivity<VideoPresenter> impl
} }
}; };
public static Intent getIntent(Context context) {
return new Intent(context, SelectMusicActivity.class);
}
@Override @Override
protected int setLayout() { protected int setLayout() {
...@@ -99,18 +113,8 @@ public class SelectMusicActivity extends BaseStatusActivity<VideoPresenter> impl ...@@ -99,18 +113,8 @@ public class SelectMusicActivity extends BaseStatusActivity<VideoPresenter> impl
@Override @Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
initView(); titleView.setTitle("选择音乐");
initListview(); mEditText.addTextChangedListener(changeListener);
}
@Override
protected void loadData(Bundle savedInstanceState, Intent intent) {
super.loadData(savedInstanceState, intent);
upData();
}
private void initListview() {
mListView = findViewById(R.id.rv_comm);
mLayoutManager = new LinearLayoutManager(mContext); mLayoutManager = new LinearLayoutManager(mContext);
mListView.setLayoutManager(mLayoutManager); mListView.setLayoutManager(mLayoutManager);
...@@ -120,19 +124,10 @@ public class SelectMusicActivity extends BaseStatusActivity<VideoPresenter> impl ...@@ -120,19 +124,10 @@ public class SelectMusicActivity extends BaseStatusActivity<VideoPresenter> impl
addListener(); addListener();
} }
private void initView() { @Override
hint = findViewById(R.id.tv_null_tip); protected void loadData(Bundle savedInstanceState, Intent intent) {
mEditText = findViewById(R.id.search_edit); super.loadData(savedInstanceState, intent);
findViewById(R.id.iv_close).setOnClickListener(this); upData();
mEditText.addTextChangedListener(changeListener);
Window o = getWindow();
WindowManager.LayoutParams lp = o.getAttributes();
lp.width = ScreenUtil.getScreenWidth(mContext);
lp.height = ScreenUtil.getScreenHeight(mContext);
o.setAttributes(lp);
this.getWindow().setGravity(Gravity.BOTTOM);
this.getWindow().setWindowAnimations(R.style.BottomDialog_Animation);
} }
@Override @Override
...@@ -341,7 +336,14 @@ public class SelectMusicActivity extends BaseStatusActivity<VideoPresenter> impl ...@@ -341,7 +336,14 @@ public class SelectMusicActivity extends BaseStatusActivity<VideoPresenter> impl
map.put("keyword", keyword); map.put("keyword", keyword);
} }
map.put("type", 4); map.put("type", 4);
mPresenter.postData(2, VideoApi.DISCOVERY_UNAUTH_LIST, BaseBean.class, map, index == 1 ? false : false); mPresenter.postData(2, VideoApi.DISCOVERY_IM_MUSIC, BaseBean.class, map, index == 1 ? false : false);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO: add setContentView(...) invocation
ButterKnife.bind(this);
} }
public interface OnMusicItemClick { public interface OnMusicItemClick {
......
...@@ -10,4 +10,7 @@ public interface VideoApi extends RvFrameConfig { ...@@ -10,4 +10,7 @@ public interface VideoApi extends RvFrameConfig {
//im登录 //im登录
String DISCOVERY_IM_LOGIN = HOST + "/api/auth/jwt/imi/login"; String DISCOVERY_IM_LOGIN = HOST + "/api/auth/jwt/imi/login";
//音乐列表
String DISCOVERY_IM_MUSIC = IMA_BASEUSRL + "/music/list";
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment