zoukankan      html  css  js  c++  java
  • 音频的播放一

    一、简单的音频播放

    【项目准备】

    ①一个视频文件,视频文件的位置---->在res下新建文件夹row------>将视频放入row文件夹中

     ②一般音频播放是不需要一直停留在界面的,所以音频播放应该放在service中,即使界面被回收,也一直在播放。

     

    【项目结构】

    【界面代码】

    1 <Button
    2         android:id="@+id/btn_play"
    3         android:text="播放"
    4         android:layout_width="match_parent"
    5         android:layout_height="wrap_content" />

     

    【MainActivity.class】

     1 public class MainActivity extends AppCompatActivity {
     2     
     3     ImageView ivPlay = null, ivRePlay = null;
     4     @Override
     5     protected void onCreate(Bundle savedInstanceState) {
     6         super.onCreate(savedInstanceState);
     7         setContentView(R.layout.activity_main);
     8 
     9         ivPlay = (ImageView) findViewById(R.id.btn_play);
    10         ivPlay.setOnClickListener(new View.OnClickListener() {
    11             @Override
    12             public void onClick(View view) {
    13                 Intent intent = new Intent(MainActivity.this, MediaPlayService.class);
    14                 startService(intent)
    15             }
    16         });
    17     }
    18 }

    【service代码】

     1 public class MediaServiceA extends Service {
     2 
     3     MediaPlayer mediaPlayer;
     4     public MediaServiceA() {
     5     }
     6     @Override
     7     public IBinder onBind(Intent intent) {
     8         // TODO: Return the communication channel to the service.
     9         throw new UnsupportedOperationException("Not yet implemented");
    10     }
    11     
    12     @Override
    13     public int onStartCommand(Intent intent, int flags, int startId) {
    14         
    15         if (mediaPlayer==null) {
    16             mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.ylzs);
    17         }//对mediaPlayer是否为空进行一个判断,如果不为空就不再Create,否则会重复播放
    18         if (mediaPlayer!=null) {
    19             mediaPlayer.start();
    20         }
    21         return super.onStartCommand(intent, flags, startId);
    22     }
    23 }

    【提示】创建service时可通过以下方法注册,否则Service要进行注册

    【AndroidManifest.xml】

    1 <service
    2             android:name=".service.MediaServiceA"
    3             android:enabled="true"
    4             android:exported="true" />

     

    【效果】点击后合成器会在动

     

  • 相关阅读:
    Loading CSS without blocking render
    总结Web应用中基于浏览器的安全漏洞
    React Native通信机制详解
    HTML Imports
    编程语言和它们的创造者
    USB Transfer and Packet Sizes
    灰色心情
    c++ 深入理解虚函数
    在VS2012中采用C++中调用DLL中的函数(4)
    在C++中调用DLL中的函数(3)
  • 原文地址:https://www.cnblogs.com/xqz0618/p/yinpin1.html
Copyright © 2011-2022 走看看