mvc与音频播放
来源:互联网 发布:基恩士视觉软件 编辑:程序博客网 时间:2024/06/05 02:06
mvc
m:模型
v :视图
c :控制
模型层,可以粗略理解为是属于纯纯的类,绝不与v层有任何关系,就音频播放来说,音频是数据,绝对是属于m层,那么相对应的就有一些控制音频的方法;模型层最接近于java里面的类;
public class AudioPlayer { //音频播放器和管理它的方法 private MediaPlayer player; public void stop(){...} public void play(Context c) {...} public void pause() {...}}
v层 视图层,主要用于展现视图,有页面,以xml为例,不管有没有人用,都是一个页面,fragment加载就叫做fragment ,activity加载就叫做activity;
c层,最麻烦的一层,我们非常容易的能够看见c层有一大堆的代码,而且都是必须的;
protected void onCreate(Bundle savedInstanceState) { //加载xml页面,此处是activity,fragment一布局形式加入activity中 super.onCreate(savedInstanceState); setContentView(R.layout.activity_hello_moon); }
public class HelloMoonFragment extends Fragment { private Button playbutton; private Button stopbutton; private Button pausebutton; private AudioPlayer player = new AudioPlayer(); @Override public void onCreate(Bundle s) {....} @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle s) {...} @Override public void onDestroy() {...}}
控制层是连接视图和模型的桥梁;视图中的控件都是死的,只有通过控制层与某些方法连接起来,才能生动,比如说:
private Button pausebutton; //将视图中的button拿了出来,将它的点击事件与 player.pause();关联起来; pausebutton =(Button)v.findViewById(R.id.hello_pauseButton); pausebutton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { player.pause(); } });
当然,除了基本的关联,还有对生命周期中调用各种方法;
public void onCreate(Bundle s) { super.onCreate(s); setRetainInstance(true); //保证其旋转屏幕时fragment不重启,保留fragment }
注意两点onAttach(),onDetach();
onCreate(),onCreateView();
第一点:fragment的保留,然后重新加载视图;
第二点:onCreate() 和onCreateView()是有显著区别的;
只有当View已经加载,我们才能找到视图上的某一个button,而onCreate()方法则是用来初始化除View以外的其他内容的
pausebutton =(Button)v.findViewById(R.id.hello_pauseButton);
0 0
- mvc与音频播放
- Android音频录制与播放
- 音频的录制与播放
- AVAudioPlayer与AVPlayer播放音频
- ALSA音频录制与播放
- Android 音频 录音与播放
- AWT绘图与音频播放
- 音频录制与播放——JavaSound
- Android 音频,视频资源管理与播放
- Android音频播放(SoundPool与 MediaPlayer)
- IOS 音频录制与播放简单演示
- Android的音频录制与播放
- Android音频的播放与录制
- Python 播放声音 音频与beep
- android6.0音频录制与播放
- iOS 实时音频采集与播放
- Android MediaPlayer播放音频与视频
- 音频播放
- Mysql Cluster7.4.12分布式集群搭建
- nc设定tnsping超时
- Wamp5出现#1045 - Access denied for user 'root'@'localhost' (using password: NO)
- linux下安装源码包
- c语言性能优化—使用寄存器变量
- mvc与音频播放
- Scala语言与Play框架入门教程
- NSOperation学习笔记
- 用户管理
- 使vim编辑器显示行号
- hdu1007最近点对(分治)
- 仿映客送礼特效
- 非对称加密
- [React Native]获取网络状态