音频的播放一

Posted xqz0618

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了音频的播放一相关的知识,希望对你有一定的参考价值。

一、简单的音频播放

【项目准备】

①一个视频文件,视频文件的位置---->在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" />

技术分享图片

 

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

技术分享图片

 

以上是关于音频的播放一的主要内容,如果未能解决你的问题,请参考以下文章

无法对非静态方法 getAssets() 进行静态引用 - 无法在片段中播放音频

从 url 中提取音频片段并使用纯 Web Audio API 播放

使用主播放列表时,HLS.js 一次加载所有子片段

在活动中添加后退按钮

同时播放两个 AVPlayer 音频文件时出现音频故障

如何以毫秒为单位获取javaFX音频片段的长度[关闭]