android 游戏开发之背景音乐的应用

在前面写到了一个即时音效的应用,主要应用在短了7s的声音,对于背景音乐这种对延时不是很严格的游戏来说,而又对音乐长度有要求的应用我们用的还是地MediaPlayer这个类里的东西。我们现在使用的音乐播放器大多也是用这个来实现的。所以游戏背景音乐对这个来说也是学习一下的。

 

初始代的步骤:

1、用MediaPlayer new一个对象出来

2、设置这个对象要播放的文件路径

3、调用用prepare()方法缓冲

4、调用.start()方法开始播放

5、播放过程可以调用stop()方法停止播放

6、播放过程也可以调用pasued()方法来暂停播放

 

注意:这里如果调用stop()方法停止播放之后,要重新返回到prepare()才能再次播放。

 

简单的播放代码如下:

package com.example.mediaplayer;

import java.io.IOException;

import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    // 按钮
    private Button play_music;
    private Button stop_music;
    private Button pasued_music;
    private Button plus;
    private Button dec;
    private MediaPlayer mp; //MediaPlayer引用
    private AudioManager am;//AudioManager引用
    private int max;//最大音量
    private int current;//当前音量
    private int stepVolume;//一次增加的音量

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 按钮的初始化
        play_music = (Button) findViewById(R.id.play_music);
        stop_music = (Button) findViewById(R.id.stop_music);
        pasued_music = (Button) findViewById(R.id.pause_music);
        plus = (Button) findViewById(R.id.plus);
        dec = (Button) findViewById(R.id.dec);
        
        mp=new MediaPlayer();
        try {
            mp.setDataSource("/sdcard/music/test.mp3");//设置路径
            mp.prepare();//缓冲
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        //调用声音
        am=(AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
        max=am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
        
        stepVolume=max/8;
        
        // 按钮监听器
        play_music.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                mp.start();
                Toast.makeText(getApplicationContext(), "音乐开始播放!", Toast.LENGTH_SHORT).show();
            }
        });
        pasued_music.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                mp.pause();
                Toast.makeText(getApplicationContext(), "音乐暂停播放!", Toast.LENGTH_SHORT).show();
                
            }
        });
        stop_music.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                mp.stop();
                Toast.makeText(getApplicationContext(), "音乐停止播放!", Toast.LENGTH_SHORT).show();
                
            }
        });
        plus.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                current=am.getStreamVolume(AudioManager.STREAM_MUSIC);
                int tempVolume=current+stepVolume;
                current=tempVolume<max?tempVolume:max;
                am.setStreamVolume(AudioManager.STREAM_MUSIC, current, AudioManager.FLAG_PLAY_SOUND);
                Toast.makeText(getApplicationContext(), "增加音量!", Toast.LENGTH_SHORT).show();
            }
        });
         dec.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    current=am.getStreamVolume(AudioManager.STREAM_MUSIC);
                    int tempVolume=current-stepVolume;
                    current=tempVolume>0?tempVolume:0;
                    am.setStreamVolume(AudioManager.STREAM_MUSIC, current, AudioManager.FLAG_PLAY_SOUND);
                    Toast.makeText(getApplicationContext(), "减少音量!", Toast.LENGTH_SHORT).show();
                }
            });

    }

}

运行界面如下:

注意:要运行这个代码要先在

/sdcard/music/这个文件夹中放入test.mp3这个文件才能播放成功。还有一个切点就是这个播放音乐时,如果你停止了音乐,然后再点开始播放时就不起作用了,
什么原因在前面已经说过了。就是要重新缓冲一下才能播放。这个程序我还没有改进,先写到这里吧。

 

数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值