e.smali

.class public final Lcom/yysdk/mobile/vpsdk/b/e;
.super Lcom/yysdk/mobile/vpsdk/b/d;
.source "SourceFile"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/yysdk/mobile/vpsdk/b/e$a;
    }
.end annotation


# instance fields
.field a:J

.field private b:[B

.field private c:Lcom/yysdk/mobile/vpsdk/b/e$a;


# direct methods
.method public constructor <init>(Landroid/content/Context;[BLcom/yysdk/mobile/vpsdk/b/e$a;J)V
    .registers 6

    .line 37
    invoke-direct {p0, p1, p4, p5}, Lcom/yysdk/mobile/vpsdk/b/d;-><init>(Landroid/content/Context;J)V

    const/4 p1, 0x0

    .line 21
    iput-object p1, p0, Lcom/yysdk/mobile/vpsdk/b/e;->b:[B

    .line 23
    iput-object p1, p0, Lcom/yysdk/mobile/vpsdk/b/e;->c:Lcom/yysdk/mobile/vpsdk/b/e$a;

    const-wide/16 p4, 0x0

    .line 25
    iput-wide p4, p0, Lcom/yysdk/mobile/vpsdk/b/e;->a:J

    const-string p1, "VP_IMAudioPlayThread"

    const-string p4, "IMAudioPlayThread constructor"

    .line 38
    invoke-static {p1, p4}, Lcom/yysdk/mobile/vpsdk/p;->a(Ljava/lang/String;Ljava/lang/String;)I

    .line 39
    iput-object p2, p0, Lcom/yysdk/mobile/vpsdk/b/e;->b:[B

    .line 40
    iput-object p3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->c:Lcom/yysdk/mobile/vpsdk/b/e$a;

    return-void
.end method


# virtual methods
.method public final run()V
    .registers 15

    const/16 v0, -0x10

    .line 45
    invoke-static {v0}, Landroid/os/Process;->setThreadPriority(I)V

    .line 46
    invoke-virtual {p0}, Lcom/yysdk/mobile/vpsdk/b/e;->h()I

    .line 49
    invoke-virtual {p0}, Lcom/yysdk/mobile/vpsdk/b/e;->j()Z

    move-result v0

    if-nez v0, :cond_f

    return-void

    .line 54
    :cond_f
    iget v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->t:I

    iget v1, p0, Lcom/yysdk/mobile/vpsdk/b/e;->u:I

    sub-int/2addr v0, v1

    const/4 v1, 0x2

    div-int/2addr v0, v1

    div-int/lit8 v0, v0, 0x1

    .line 55
    new-instance v2, Ljava/lang/StringBuilder;

    const-string v3, "yyaudio: playerBufferSize: "

    invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->t:I

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v3, ", play20msBuffSize: "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->u:I

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v3, ", lowDelayThresholdSample: "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    const-string v2, "VP_IMAudioPlayThread"

    invoke-static {v2, v0}, Lcom/yysdk/mobile/vpsdk/p;->b(Ljava/lang/String;Ljava/lang/String;)I

    .line 56
    :cond_3f
    :goto_3f
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->h:Z

    const/4 v3, 0x0

    if-eqz v0, :cond_1d1

    .line 59
    :try_start_44
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->m:Z

    if-eqz v0, :cond_3f

    .line 60
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->n:Z

    if-eqz v0, :cond_57

    .line 61
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->n:Z

    .line 62
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->c:Lcom/yysdk/mobile/vpsdk/b/e$a;

    if-eqz v0, :cond_57

    .line 63
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->c:Lcom/yysdk/mobile/vpsdk/b/e$a;

    invoke-interface {v0}, Lcom/yysdk/mobile/vpsdk/b/e$a;->a()V

    .line 67
    :cond_57
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
    :try_end_5c
    .catch Ljava/lang/Exception; {:try_start_44 .. :try_end_5c} :catch_1c9

    .line 69
    :try_start_5c
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->o:Z

    if-eqz v0, :cond_6e

    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->s:Landroid/media/AudioTrack;

    invoke-virtual {v0}, Landroid/media/AudioTrack;->getPlayState()I

    move-result v0

    const/4 v4, 0x3

    if-ne v0, v4, :cond_6e

    .line 70
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->s:Landroid/media/AudioTrack;

    invoke-virtual {v0}, Landroid/media/AudioTrack;->pause()V

    .line 72
    :cond_6e
    :goto_6e
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->h:Z

    if-eqz v0, :cond_87

    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->m:Z

    if-eqz v0, :cond_87

    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->s:Landroid/media/AudioTrack;

    invoke-virtual {v0}, Landroid/media/AudioTrack;->getPlayState()I

    move-result v0

    if-ne v0, v1, :cond_87

    .line 73
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->r:Ljava/util/concurrent/locks/Condition;

    const-wide/32 v4, 0x989680

    invoke-interface {v0, v4, v5}, Ljava/util/concurrent/locks/Condition;->awaitNanos(J)J

    goto :goto_6e

    .line 75
    :cond_87
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->h:Z
    :try_end_89
    .catchall {:try_start_5c .. :try_end_89} :catchall_1c2

    if-nez v0, :cond_92

    .line 113
    :try_start_8b
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
    :try_end_90
    .catch Ljava/lang/Exception; {:try_start_8b .. :try_end_90} :catch_1c9

    goto/16 :goto_1d1

    .line 79
    :cond_92
    :try_start_92
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->z:Z

    const-wide/16 v4, 0x8

    const-wide/16 v6, 0x10

    if-nez v0, :cond_a2

    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->A:Z

    if-nez v0, :cond_a2

    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->y:Z

    if-eqz v0, :cond_f2

    .line 80
    :cond_a2
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->q:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
    :try_end_a7
    .catchall {:try_start_92 .. :try_end_a7} :catchall_1c2

    .line 82
    :try_start_a7
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->A:Z

    if-eqz v0, :cond_b7

    .line 83
    invoke-virtual {p0}, Lcom/yysdk/mobile/vpsdk/b/e;->l()J

    move-result-wide v8

    iput-wide v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->a:J

    mul-long v8, v8, v6

    .line 84
    div-long/2addr v8, v4

    long-to-int v0, v8

    iput v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->i:I

    .line 86
    :cond_b7
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->s:Landroid/media/AudioTrack;

    invoke-virtual {v0}, Landroid/media/AudioTrack;->pause()V

    .line 87
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->s:Landroid/media/AudioTrack;

    invoke-virtual {v0}, Landroid/media/AudioTrack;->flush()V

    .line 88
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->s:Landroid/media/AudioTrack;

    invoke-virtual {v0}, Landroid/media/AudioTrack;->play()V
    :try_end_c6
    .catchall {:try_start_a7 .. :try_end_c6} :catchall_1bb

    .line 91
    :try_start_c6
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->s:Landroid/media/AudioTrack;

    invoke-virtual {v0}, Landroid/media/AudioTrack;->getPlaybackHeadPosition()I

    move-result v0

    iput v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->j:I
    :try_end_ce
    .catchall {:try_start_c6 .. :try_end_ce} :catchall_cf

    goto :goto_d1

    .line 93
    :catchall_cf
    :try_start_cf
    iput v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->j:I

    .line 97
    :goto_d1
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->z:Z

    if-eqz v0, :cond_db

    const-wide/16 v8, 0x0

    .line 98
    iput-wide v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->a:J

    .line 99
    iput v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->i:I

    .line 101
    :cond_db
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->y:Z

    if-eqz v0, :cond_e7

    .line 102
    iget-wide v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->a:J

    mul-long v8, v8, v6

    div-long/2addr v8, v4

    long-to-int v0, v8

    iput v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->i:I

    .line 105
    :cond_e7
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->z:Z

    .line 106
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->y:Z

    .line 107
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->A:Z
    :try_end_ed
    .catchall {:try_start_cf .. :try_end_ed} :catchall_1bb

    .line 109
    :try_start_ed
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->q:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
    :try_end_f2
    .catchall {:try_start_ed .. :try_end_f2} :catchall_1c2

    .line 113
    :cond_f2
    :try_start_f2
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V

    .line 116
    iget-boolean v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->D:Z

    if-eqz v0, :cond_10c

    .line 117
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->D:Z

    const/4 v8, 0x1

    const/4 v9, 0x1

    const/16 v10, 0x10

    const v11, 0xac44

    .line 118
    iget-object v12, p0, Lcom/yysdk/mobile/vpsdk/b/e;->b:[B

    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->b:[B

    array-length v13, v0

    invoke-static/range {v8 .. v13}, Lcom/yysdk/mobile/vpsdk/VPSDKNativeLibrary;->imGetAudioFrame(IIII[BI)I

    .line 120
    :cond_10c
    iget v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->i:I

    iget-object v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->b:[B

    array-length v8, v8

    iget v9, p0, Lcom/yysdk/mobile/vpsdk/b/e;->w:I

    sub-int/2addr v8, v9

    if-le v0, v8, :cond_137

    .line 121
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->v:[B

    invoke-static {v0, v3}, Ljava/util/Arrays;->fill([BB)V

    .line 122
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
    :try_end_120
    .catch Ljava/lang/Exception; {:try_start_f2 .. :try_end_120} :catch_1c9

    .line 124
    :try_start_120
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->s:Landroid/media/AudioTrack;

    iget-object v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->v:[B

    iget v9, p0, Lcom/yysdk/mobile/vpsdk/b/e;->w:I

    invoke-virtual {v0, v8, v3, v9}, Landroid/media/AudioTrack;->write([BII)I

    move-result v0
    :try_end_12a
    .catchall {:try_start_120 .. :try_end_12a} :catchall_130

    .line 126
    :try_start_12a
    iget-object v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V

    goto :goto_15b

    :catchall_130
    move-exception v0

    iget-object v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V

    throw v0

    .line 129
    :cond_137
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->b:[B

    iget v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->i:I

    iget-object v9, p0, Lcom/yysdk/mobile/vpsdk/b/e;->v:[B

    iget v10, p0, Lcom/yysdk/mobile/vpsdk/b/e;->w:I

    invoke-static {v0, v8, v9, v3, v10}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 130
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
    :try_end_147
    .catch Ljava/lang/Exception; {:try_start_12a .. :try_end_147} :catch_1c9

    .line 132
    :try_start_147
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->s:Landroid/media/AudioTrack;

    iget-object v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->v:[B

    iget v9, p0, Lcom/yysdk/mobile/vpsdk/b/e;->w:I

    invoke-virtual {v0, v8, v3, v9}, Landroid/media/AudioTrack;->write([BII)I

    move-result v0
    :try_end_151
    .catchall {:try_start_147 .. :try_end_151} :catchall_1b4

    .line 134
    :try_start_151
    iget-object v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V

    .line 136
    iget v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->i:I

    add-int/2addr v3, v0

    iput v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->i:I

    :goto_15b
    const-wide/16 v8, 0x2

    .line 139
    invoke-static {v8, v9}, Lcom/yysdk/mobile/vpsdk/b/e;->sleep(J)V

    .line 140
    iget v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->w:I

    if-eq v0, v3, :cond_3f

    .line 141
    new-instance v3, Ljava/lang/StringBuilder;

    const-string v8, "[audio-player] written error! written="

    invoke-direct {v3, v8}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v8, ", len="

    invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->u:I

    invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string v8, " cur "

    invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->i:I

    invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-static {v2, v3}, Lcom/yysdk/mobile/vpsdk/p;->c(Ljava/lang/String;Ljava/lang/String;)I

    if-gez v0, :cond_3f

    .line 144
    invoke-virtual {p0}, Lcom/yysdk/mobile/vpsdk/b/e;->l()J

    move-result-wide v8

    iput-wide v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->a:J

    .line 145
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V

    .line 146
    invoke-virtual {p0}, Lcom/yysdk/mobile/vpsdk/b/e;->k()V

    .line 147
    invoke-virtual {p0}, Lcom/yysdk/mobile/vpsdk/b/e;->j()Z

    move-result v0

    if-nez v0, :cond_1a5

    .line 148
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V

    return-void

    .line 151
    :cond_1a5
    iget-wide v8, p0, Lcom/yysdk/mobile/vpsdk/b/e;->a:J

    mul-long v8, v8, v6

    div-long/2addr v8, v4

    long-to-int v0, v8

    iput v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->i:I

    .line 152
    iget-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V

    goto/16 :goto_3f

    :catchall_1b4
    move-exception v0

    .line 134
    iget-object v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V

    throw v0
    :try_end_1bb
    .catch Ljava/lang/Exception; {:try_start_151 .. :try_end_1bb} :catch_1c9

    :catchall_1bb
    move-exception v0

    .line 109
    :try_start_1bc
    iget-object v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->q:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V

    throw v0
    :try_end_1c2
    .catchall {:try_start_1bc .. :try_end_1c2} :catchall_1c2

    :catchall_1c2
    move-exception v0

    .line 113
    :try_start_1c3
    iget-object v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->p:Ljava/util/concurrent/locks/Lock;

    invoke-interface {v3}, Ljava/util/concurrent/locks/Lock;->unlock()V

    throw v0
    :try_end_1c9
    .catch Ljava/lang/Exception; {:try_start_1c3 .. :try_end_1c9} :catch_1c9

    :catch_1c9
    move-exception v0

    const-string v3, "audio play encounter exception"

    .line 157
    invoke-static {v2, v3, v0}, Lcom/yysdk/mobile/vpsdk/p;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    goto/16 :goto_3f

    .line 160
    :cond_1d1
    :goto_1d1
    invoke-virtual {p0}, Lcom/yysdk/mobile/vpsdk/b/e;->k()V

    const/4 v0, 0x0

    .line 161
    iput-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->b:[B

    .line 162
    invoke-virtual {p0}, Lcom/yysdk/mobile/vpsdk/b/e;->i()V

    .line 163
    iput-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->k:Landroid/content/Context;

    .line 164
    iput-object v0, p0, Lcom/yysdk/mobile/vpsdk/b/e;->l:Landroid/media/AudioManager;

    .line 165
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->m:Z

    .line 166
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->z:Z

    .line 167
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->y:Z

    .line 168
    iput-boolean v3, p0, Lcom/yysdk/mobile/vpsdk/b/e;->D:Z

    return-void
.end method