Vitamio

  • 打开百度云—音视频直播LSS

这里写图片描述

  • 管理控制台—音视频直播认证

这里写图片描述

  • 下载Vitamio

    这里写图片描述

  • AndroidStudio导入model

这里写图片描述

  • 代码
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<activity
            android:name="io.vov.vitamio.activity.InitActivity"
            android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
            android:launchMode="singleTop"
            android:theme="@android:style/Theme.NoTitleBar"
            android:windowSoftInputMode="stateAlwaysHidden" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Vitamio.initialize(this);
    }
}
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.ImageView;

import java.io.IOException;

import io.vov.vitamio.MediaPlayer;

import static com.example.liveplayer.R.id.iv;
import static com.example.liveplayer.R.id.sv;

public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback, View.OnClickListener {

    String url = "rtmp://live.hkstv.hk.lxdns.com/live/hks";
    SurfaceView surfaceView;
    ImageView imageView;
    MediaPlayer mediaPlayer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        surfaceView= (SurfaceView) findViewById(sv);
        imageView= (ImageView) findViewById(iv);
        surfaceView.getHolder().addCallback(this);
        surfaceView.setOnClickListener(this);
        surfaceView.getHolder().setFormat(PixelFormat.RGBA_8888);
    }

    @Override
    public void surfaceCreated(SurfaceHolder surfaceHolder) {
        mediaPlayer=new MediaPlayer(this);
        try {
            mediaPlayer.setDataSource(url);
            mediaPlayer.setDisplay(surfaceHolder);
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    mediaPlayer.start();
                }
            });

            mediaPlayer.prepareAsync();
            mediaPlayer.setBufferSize(1024 * 1024 * 2);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {

    }

    @Override
    public void surfaceDestroyed(SurfaceHolder surfaceHolder) {

        if (mediaPlayer != null) {
            if (mediaPlayer.isPlaying())
                mediaPlayer.stop();
            mediaPlayer.release();
            mediaPlayer = null;
        }
    }

    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            imageView.setVisibility(View.GONE);
        }
    };

    @Override
    public void onClick(View view) {
        if (mediaPlayer != null) {
            if (mediaPlayer.isPlaying()) {
                imageView.setVisibility(View.VISIBLE);
                imageView.setImageResource(R.mipmap.pause);
                mediaPlayer.pause();
            }else {
                imageView.setImageResource(R.mipmap.play);
                mediaPlayer.start();

                handler.sendEmptyMessageDelayed(1, 2000);
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Vitamio是一个开源的跨平台多媒体播放框架,它支持播放多种音频格式,包括WAV格式。要在Android Vitamio中播放WAV文件,可以按以下步骤进行: 第一步:添加Vitamio库文件到项目中。在build.gradle文件中添加Vitamio库的依赖项。 第二步:在代码中初始化Vitamio库。在App的入口处(如MainActivity的onCreate方法中),调用Vitamio库的初始化方法,确保Vitamio库已经正确初始化。 第三步:创建一个MediaPlayer对象,用于播放音频文件。可以使用VitamioVitamio.createPlayer方法创建一个MediaPlayer对象。 第四步:设置音频文件的路径。使用MediaPlayer对象的setDataSource方法,传入要播放的WAV文件的路径。 第五步:准备MediaPlayer对象。调用MediaPlayer对象的prepareAsync方法,准备音频文件的播放。 第六步:设置MediaPlayer的监听器。可以注册一个MediaPlayer.OnPreparedListener监听器,用于在音频准备完成后播放音频。 第七步:开始播放音频。调用MediaPlayer对象的start方法,开始播放音频。 第八步:在适当的时机释放MediaPlayer对象。当音频播放完成或不再需要播放时,调用MediaPlayer对象的release方法,释放资源。 通过上述步骤,就可以使用Android Vitamio播放WAV文件了。需要注意的是,确保WAV文件的路径正确,并且要在AndroidManifest.xml文件中添加适当的权限,以允许访问存储器中的音频文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值