• 5.1.2 通过意图使用内置的音频播放器


        如同使用摄像头一样,在应用程序中提供播放音频文件功能的最简单的方式是利用内置的“Music(音乐)”应用程序的功能。这个应用程序能够播放Android支持的所有格式,有一个用户熟悉的界面,并且可以通过意图来触发播放特定的文件。

        将通用android.content.Intent.ACTION_VIEW意图的数据设置为一个音频文件的URI,并指定其MIME类型,这样Android就可以挑选适当的应用程序进行播放。这应该是Music应用程序,但是如果用户安装了其他的音频播放软件,那么可能存在其他选项。

    1          Intent intent=new Intent(android.content.Intent.ACTION_VIEW);
    2          intent.setDataAndType(audioFileUri, "audio/mp3");
    3          startActivity(intent);

       下面是通过一个意图触发内置音频播放器应用程序的完整示例:

     1 package com.nthm.androidtest;
     2 
     3 import java.io.File;
     4 import android.app.Activity;
     5 import android.content.Intent;
     6 import android.net.Uri;
     7 import android.os.Bundle;
     8 import android.os.Environment;
     9 import android.view.View;
    10 import android.view.View.OnClickListener;
    11 import android.widget.Button;

         在触发播放音频之前,活动将监听是否按下一个按钮。由于活动实现OnClickListener,因此它可以响应该事件。

    1 public class AudioPlayer extends Activity implements OnClickListener {
    2     private Button playButton;
    3     
    4     @Override
    5     protected void onCreate(Bundle savedInstanceState) {
    6         super.onCreate(savedInstanceState);
    7         setContentView(R.layout.audioplayer);

        在将内容视图设置为我们的XML之后,可以在代码中获得按钮的引用,并设置活动(this)为OnClickListener。

    1         playButton=(Button) findViewById(R.id.Button01);
    2         playButton.setOnClickListener(this);
    3     }

        当单击按钮时,调用onClick方法。在该方法中使用的android.content.Intent.ACTION_VIEW构造意图,然后创建一个File对象,引用在SD卡上存在的音频文件。在当前情况下,音频文件被手动设置在SD卡的Music目录中,该目录是放置音乐相关音频文件的标准位置。

    1     @Override
    2     public void onClick(View v) {
    3         Intent intent=new Intent(android.content.Intent.ACTION_VIEW);
    4         File sdcard=Environment.getExternalStorageDirectory();
    5         File audioFile=new File(sdcard.getPath()+"music.mp3");

       接下来,将意图的数据设置为源自音频文件的Uri,并将类型设置为其MIME类型——audio/mp3。最后,通过调用startActivity并传入意图来触发内置的应用程序启动。

    1         intent.setDataAndType(Uri.fromFile(audioFile), "audio/mp3");
    2         startActivity(intent);
    3     }
    4 }

        以下是一个简单的布局XML文件,指定用于上述活动的按钮文本为“Play Audio”。

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     android:layout_width="match_parent"
     3     android:layout_height="match_parent"
     4     android:orientation="vertical"
     5     >
     6     <Button 
     7         android:layout_width="fill_parent"
     8         android:layout_height="wrap_content"
     9         android:text="Play Audio"
    10         android:id="@+id/Button01" />
    11 </LinearLayout>
  • 相关阅读:
    实体类字段格式校验
    .Net Core之自定义中间件
    创建型之【单例模式】
    Linux下安装Apollo (Quick Start)
    Linux下安装MySQL你又踩过多少坑【宇宙最全教程】
    C#之Expression表达式目录树
    创建型之【建造者模式】
    [LeetCode] 1675. Minimize Deviation in Array
    [LeetCode] 1996. The Number of Weak Characters in the Game
    [LeetCode] 1523. Count Odd Numbers in an Interval Range
  • 原文地址:https://www.cnblogs.com/ZSS-Android/p/3938929.html
Copyright © 2020-2023  润新知