android.media.AudioTrack#ERROR_BAD_VALUE源码实例Demo

下面列出了android.media.AudioTrack#ERROR_BAD_VALUE 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: EvilsLive   文件: AudioPlayer.java
public boolean startPlayer(int streamType, int sampleRateInHz, int channelConfig, int audioFormat) {
    
    if (mIsPlayStarted) {
        Log.e(TAG, "Player already started !");
        return false;
    }
    
    mMinBufferSize = AudioTrack.getMinBufferSize(sampleRateInHz,channelConfig,audioFormat);
    if (mMinBufferSize == AudioTrack.ERROR_BAD_VALUE) {
        Log.e(TAG, "Invalid parameter !");
        return false;
    }
    Log.d(TAG , "getMinBufferSize = "+mMinBufferSize+" bytes !");
    
    mAudioTrack = new AudioTrack(streamType,sampleRateInHz,channelConfig,audioFormat,mMinBufferSize,DEFAULT_PLAY_MODE);
    if (mAudioTrack.getState() == AudioTrack.STATE_UNINITIALIZED) {
        Log.e(TAG, "AudioTrack initialize fail !");
        return false;
    }            
    
    mIsPlayStarted = true;
    
    Log.d(TAG, "Start audio player success !");
    
    return true;
}
 
源代码2 项目: android-sdk   文件: StreamPlayer.java
/**
 * Initialize AudioTrack by getting buffersize
 *
 * @param sampleRate the sample rate for the audio to be played
 */
private void initPlayer(int sampleRate) {
  synchronized (this) {
    int bufferSize = AudioTrack.getMinBufferSize(
            sampleRate,
            AudioFormat.CHANNEL_OUT_MONO,
            AudioFormat.ENCODING_PCM_16BIT);
    if (bufferSize == AudioTrack.ERROR_BAD_VALUE) {
      throw new RuntimeException("Could not determine buffer size for audio");
    }

    audioTrack = new AudioTrack(
            AudioManager.STREAM_MUSIC,
            sampleRate,
            AudioFormat.CHANNEL_OUT_MONO,
            AudioFormat.ENCODING_PCM_16BIT,
            bufferSize,
            AudioTrack.MODE_STREAM
    );
    audioTrack.play();
  }
}
 
源代码3 项目: RxAndroidAudio   文件: StreamAudioPlayer.java
@WorkerThread
public synchronized boolean play(byte[] data, int size) {
    if (mAudioTrack != null) {
        try {
            int ret = mAudioTrack.write(data, 0, size);
            switch (ret) {
                case AudioTrack.ERROR_INVALID_OPERATION:
                    Log.w(TAG, "play fail: ERROR_INVALID_OPERATION");
                    return false;
                case AudioTrack.ERROR_BAD_VALUE:
                    Log.w(TAG, "play fail: ERROR_BAD_VALUE");
                    return false;
                case AudioManager.ERROR_DEAD_OBJECT:
                    Log.w(TAG, "play fail: ERROR_DEAD_OBJECT");
                    return false;
                default:
                    return true;
            }
        } catch (IllegalStateException e) {
            Log.w(TAG, "play fail: " + e.getMessage());
            return false;
        }
    }
    Log.w(TAG, "play fail: null mAudioTrack");
    return false;
}
 
源代码4 项目: Android   文件: AudioPlayer.java
public boolean startPlayer(int streamType, int sampleRateInHz, int channelConfig, int audioFormat) {
    
    if (mIsPlayStarted) {
        Log.e(TAG, "Player already started !");
        return false;
    }
    
    mMinBufferSize = AudioTrack.getMinBufferSize(sampleRateInHz,channelConfig,audioFormat);
    if (mMinBufferSize == AudioTrack.ERROR_BAD_VALUE) {
        Log.e(TAG, "Invalid parameter !");
        return false;
    }
    Log.d(TAG , "getMinBufferSize = "+mMinBufferSize+" bytes !");
    
    mAudioTrack = new AudioTrack(streamType,sampleRateInHz,channelConfig,audioFormat,mMinBufferSize,DEFAULT_PLAY_MODE);
    if (mAudioTrack.getState() == AudioTrack.STATE_UNINITIALIZED) {
        Log.e(TAG, "AudioTrack initialize fail !");
        return false;
    }            
    
    mIsPlayStarted = true;
    
    Log.d(TAG, "Start audio player success !");
    
    return true;
}
 
源代码5 项目: TikTok   文件: AudioTrackManager.java
@Override
public void run() {
    try {
        android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
        byte[] tempBuffer = new byte[bufferSize];
        int readCount = 0;
        while (true) {
            if(!isLoop && dis.available() <= 0){
                break;
            }
            if(dis.available() <= 0){
                dis.reset();
            }
            readCount= dis.read(tempBuffer);
            if (readCount == AudioTrack.ERROR_INVALID_OPERATION || readCount == AudioTrack.ERROR_BAD_VALUE) {
                continue;
            }
            if (readCount != 0 && readCount != -1) {
                audioTrack.play();
                audioTrack.write(tempBuffer, 0, readCount);
            }
        }
        stopPlay();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
 
源代码6 项目: connectivity-samples   文件: AudioPlayer.java
@Override
protected boolean validSize(int size) {
  return size != AudioTrack.ERROR && size != AudioTrack.ERROR_BAD_VALUE;
}
 
@Override
protected boolean validSize(int size) {
	return size != AudioTrack.ERROR && size != AudioTrack.ERROR_BAD_VALUE;
}